Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Private Function Toip(ByVal Nun As Double) As String
Dim Tmp As Long, Ipd(3) As Byte
If Nun > 4294967295# Or Nun < 0 Then Toip = "": Exit Function *不符合ip地址的数值,返回空
Tmp = IIf(Nun > 2147483647, Nun - 4294967296#, Nun) *处理long型溢出的数值
CopyMemory ByVal VarPtr(Ipd(0)), ByVal VarPtr(Tmp), 4 *Tmp每个字节对应ip的一位,拷贝到ipd数组
Toip = Trim(Str(Ipd(0))) & "." & Trim(Str(Ipd(1))) & "." & Trim(Str(Ipd(2))) & "." & Trim(Str(Ipd(3))) *返回ip地址
End Function
调用方法 ip地址 = Toip( 十进制的ip地址数值 )
Private Function Toip(ByVal Nun As Double) As String
Dim Tmp As Long, Ipd(3) As Byte
If Nun > 4294967295# Or Nun < 0 Then Toip = "": Exit Function *不符合ip地址的数值,返回空
Tmp = IIf(Nun > 2147483647, Nun - 4294967296#, Nun) *处理long型溢出的数值
CopyMemory ByVal VarPtr(Ipd(0)), ByVal VarPtr(Tmp), 4 *Tmp每个字节对应ip的一位,拷贝到ipd数组
Toip = Trim(Str(Ipd(0))) & "." & Trim(Str(Ipd(1))) & "." & Trim(Str(Ipd(2))) & "." & Trim(Str(Ipd(3))) *返回ip地址
End Function
调用方法 ip地址 = Toip( 十进制的ip地址数值 )