前段时间我发过贴问IP转换成数字的问题。现在重复一次问题。
这个问题应用再SyGate的EventLog.mdb数据库中,这个数据库用来记录上网的IP.网站的IP.端口等,但是IP记录并不是直接把IP记下来,而是把IP转换成数字再保存。
如192.168.1.218就会被记录-637425472
问两者之间的转换
这个问题应用再SyGate的EventLog.mdb数据库中,这个数据库用来记录上网的IP.网站的IP.端口等,但是IP记录并不是直接把IP记下来,而是把IP转换成数字再保存。
如192.168.1.218就会被记录-637425472
问两者之间的转换
private Declare Function inet_addr Lib "wsock32.dll" (ByVal cp As String) As Longdim ip as string
ip = "192.168.1.111"
dim i as long
i = inet_addr(IP)地址到字符串private Declare Function inet_ntoa Lib "wsock32.dll" (ByVal addr As Long) As Long
private Declare Function lstrcpyA Lib "kernel32" (ByVal RetVal As String, ByVal Ptr As Long) As Long
private Declare Function lstrlenA Lib "kernel32" (ByVal Ptr As Any) As Longprivate Function GetIPFromAddress(Address As Long) As String
Dim ptrString As Long
ptrString = inet_ntoa(Address)
GetIPFromAddress = GetStrFromPtrA(ptrString)
End Function
private Function GetStrFromPtrA(ByVal lpszA As Long) As String
GetStrFromPtrA = String$(lstrlenA(ByVal lpszA), 0)
Call lstrcpyA(ByVal GetStrFromPtrA, ByVal lpszA)
End Function
Private Declare Function lstrcpyA Lib "kernel32" (ByVal RetVal As String, ByVal Ptr As Long) As Long
Private Declare Function lstrlenA Lib "kernel32" (ByVal Ptr As Any) As Long
Private Declare Function inet_addr Lib "wsock32.dll" (ByVal cp As String) As LongPrivate Function GetIPFromAddress(Address As Long) As String
Dim ptrString As Long
ptrString = inet_ntoa(Address)
GetIPFromAddress = GetStrFromPtrA(ptrString)
End Function
Private Function GetStrFromPtrA(ByVal lpszA As Long) As String GetStrFromPtrA = String$(lstrlenA(ByVal lpszA), 0)
Call lstrcpyA(ByVal GetStrFromPtrA, ByVal lpszA)
End Function
Private Sub Command1_Click()
Dim i As Long
i = inet_addr("192.168.1.218")
Debug.Print i
Debug.Print GetIPFromAddress(i)
End Sub