日期:2014-05-17 浏览次数:21266 次
' IP2N(vStr)
' IP 地址转 10 进制数字
'
' #####################################################
'
' vStr 为合法的 IP 地址,或者任意小于 256 的数字与 . 构成的切头尾是数字的字符串
'
' #####################################################
'
' a = IP2N("220.160.4.17") ' Return 3701474321
' a = IP2N("218.107.61.31") ' Return 3664461087
Function IP2N(vStr)
Dim IP,intLoop
IP2N = 0
IP = Split(vStr,".")
For intLoop = 0 To UBound(IP)
IP2N = 256 ^ (UBound(IP) - intLoop) * CInt(IP(intLoop)) + IP2N
Next
End Function
' N2IP(vNum)
' 数字转 IP 地址,此函数为 IP2N 的逆运算
'
' #####################################################
'
' 该函数为递归方法
' vNum 为参与计算的正整数数值
'
' #####################################################
'
' a = N2IP("3701474321") ' Return "220.160.4.17"
' a = N2IP("3664461087") ' Return "218.107.61.31"
Function N2IP(vNum)
If vNum > 256 Then
N2IP = N2IP(Int(vNum / 256)) & "." & (vNum - Int(vNum / 256) * 256)
Else
N2IP = vNum
End If
End Function