RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
取得本机IP地址的方法两则
  • 作者: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'-------------------------------------------