- 作者:xiaoxiao
- 发表时间:2020-12-23 10:38
- 来源:未知
方法1:(控件法)
新建工程,在工程中加入Winsock控件和一个按钮控件
代码:
Option Explicit
Private Sub Command1_Click() MsgBox "当前计算机网卡IP:" & Winsock1.LocalIPEnd Sub
方法2:(API法)
新建工程,在工程中加入一个按钮控件
代码:
Option Explicit
Private Type WSAData wVersion As Integer wHighVersion As Integer szDescription(0 To 256) szSystemStatus(0 To 128) wMaxSockets As Integer dwVendorInfo As LongEnd Type
Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Long, lpWSAData As WSAData) As LongPrivate Declare Function WSACleanup Lib "WSOCK32.DLL" () As LongPrivate Declare Function gethostname Lib "WSOCK32.DLL" (ByVal szHost As String, ByVal dwHostLen As Long) As LongPrivate Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal szHost As String) As LongPrivate Declare Sub CopyMemoryIP Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Private Function GetIPAddress() As String On Error GoTo Z Dim wsa As WSAData Dim rVal As Long Dim sHost As String * 256 Dim lp As Long Dim lpa As Long Dim IpAdr(0 To 3) As Byte rVal = WSAStartup((2 + &H100), wsa) If rVal = 0 Then gethostname sHost, 256 lp = gethostbyname(sHost) If lp Then CopyMemoryIP lpa, lp + 16, 4 CopyMemoryIP IpAdr(0), lpa, 4 GetIPAddress = CStr(IpAdr(0)) & "." & CStr(IpAdr(1)) & "." & CStr(IpAdr(2)) & "." & CStr(IpAdr(3)) End If WSACleanup End If Exit FunctionZ: GetIPAddress = ""End Function
Private Sub Command1_Click() Dim ret As String ret = GetIPAddress If ret <> "" Then MsgBox "当前计算机网卡IP:" & ret End IfEnd Sub
'-------------------------------------------' 转载请注明出处' 作者:唐细刚' 邮箱:tanaya@163.com'-------------------------------------------