Office中国论坛/Access中国论坛

标题: (API)获取计算机(本地/公网)IP地址 [打印本页]

作者: tmtony    时间: 2008-7-14 08:12
标题: (API)获取计算机(本地/公网)IP地址
网友lirong发的

获取计算机(本地/公网)IP地址

Private Const ERROR_SUCCESS As Long = 0
Private Const MAX_ADAPTER_NAME_LENGTH As Long = 256
Private Const MAX_ADAPTER_DESCRIPTION_LENGTH As Long = 128
Private Const MAX_ADAPTER_ADDRESS_LENGTH As Long = 8


Private Type IP_ADDRESS_STRING

IpAddr(0 To 15) As Byte

End Type


Private Type IP_MASK_STRING

IpMask(0 To 15) As Byte

End Type


Private Type IP_ADDR_STRING

dwNext
As Long


IpAddress As IP_ADDRESS_STRING


IpMask
As IP_MASK_STRING


dwContext As Long

End Type


Private Type IP_ADAPTER_INFO

dwNext

As Long


ComboIndex
As Long
'reserved


sAdapterName(0 To (MAX_ADAPTER_NAME_LENGTH + 3))
As Byte


sDescription(0 To (MAX_ADAPTER_DESCRIPTION_LENGTH + 3)) As Byte


dwAddressLength
As Long


sIPAddress(0 To (MAX_ADAPTER_ADDRESS_LENGTH - 1))
As Byte


dwIndex
As Long


uType

As Long


uDhcpEnabled
As Long


CurrentIpAddress
As Long


IpAddressList
As IP_ADDR_STRING


GatewayList
As IP_ADDR_STRING


DhcpServer
As IP_ADDR_STRING


bHaveWins
As Long


PrimaryWinsServer

As IP_ADDR_STRING


SecondaryWinsServer

As IP_ADDR_STRING


LeaseObtained
As Long


LeaseExpires
As Long

End Type


Private Declare Function GetAdaptersInfo Lib "iphlpapi.dll" (pTcpTable As Any, _

pdwSize As Long) As Long



Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _

(dst As Any, src As Any, ByVal bcount As Long)



Private Declare Function URLDownloadToFile Lib "urlmon" _

Alias "URLDownloadToFileA" _


(ByVal pCaller As Long, _



ByVal szURL As String, _


ByVal szFileName As String, _


ByVal dwReserved As Long, _


ByVal lpfnCB As Long) As Long



Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" _

Alias "DeleteUrlCacheEntryA" _


(ByVal lpszUrlName As String) As Long



Private Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long

Private Function GetPublicIP()

Dim sSourceUrl As String


Dim sLocalFile As String


Dim hfile
As Long


Dim buff
As String


Dim pos1
As Long


Dim pos2
As Long




'site returning IP address



获取计算机(本地/公网)IP地址

Private Const ERROR_SUCCESS As Long = 0
Private Const MAX_ADAPTER_NAME_LENGTH As Long = 256
Private Const MAX_ADAPTER_DESCRIPTION_LENGTH As Long = 128
Private Const MAX_ADAPTER_ADDRESS_LENGTH As Long = 8


Private Type IP_ADDRESS_STRING

IpAddr(0 To 15) As Byte

End Type


Private Type IP_MASK_STRING

IpMask(0 To 15) As Byte

End Type


Private Type IP_ADDR_STRING

dwNext
As Long


IpAddress As IP_ADDRESS_STRING


IpMask
As IP_MASK_STRING


dwContext As Long

End Type


Private Type IP_ADAPTER_INFO

dwNext

As Long


ComboIndex
As Long
'reserved


sAdapterName(0 To (MAX_ADAPTER_NAME_LENGTH + 3))
As Byte


sDescription(0 To (MAX_ADAPTER_DESCRIPTION_LENGTH + 3)) As Byte


dwAddressLength

As Long


sIPAddress(0 To (MAX_ADAPTER_ADDRESS_LENGTH - 1))
As Byte


dwIndex
As Long


uType

As Long


uDhcpEnabled
As Long


CurrentIpAddress
As Long


IpAddressList
As IP_ADDR_STRING



GatewayList

As IP_ADDR_STRING


DhcpServer
As IP_ADDR_STRING


bHaveWins
As Long


PrimaryWinsServer
As IP_ADDR_STRING


SecondaryWinsServer
As IP_ADDR_STRING


LeaseObtained
As Long


LeaseExpires
As Long

End Type


Private Declare Function GetAdaptersInfo Lib "iphlpapi.dll" (pTcpTable As Any, _

pdwSize As Long) As Long



Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _

(dst As Any, src As Any, ByVal bcount As Long)



Private Declare Function URLDownloadToFile Lib "urlmon" _

Alias "URLDownloadToFileA" _


(ByVal pCaller As Long, _


ByVal szURL As String, _


ByVal szFileName As String, _



ByVal dwReserved As Long, _


ByVal lpfnCB As Long) As Long



Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" _

Alias "DeleteUrlCacheEntryA" _



(ByVal lpszUrlName As String) As Long



Private Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long

Private Function GetPublicIP()

Dim sSourceUrl As String


Dim sLocalFile As String


Dim hfile
As Long


Dim buff
As String


Dim pos1
As Long


Dim pos2
As Long




'site returning IP address


sSourceUrl = "http://vbnet.mvps.org/resources/tools/getpublicip.shtml"


sLocalFile = "c:\ip.txt"




'ensure this f


作者: xuwenning    时间: 2008-7-14 08:34
收藏[:50]
作者: rcylbx    时间: 2008-8-30 07:44
顶一下
作者: herry2003aa    时间: 2009-8-3 12:36
你上面的代码如何使用能给个例子吗?谢谢!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3