<%
 '+--------------------------------------------+
 '| IP功能函数                        |
 '| 2004年4月6日 14:35:58                      |
 '| 圪圪                                       |
 '+--------------------------------------------+'===================================================================================
' 函数名称: IPAddressToNumber()
'   函数原型:  IPAddressToNumber(IPAddress)
' 功    能: 将IP地址转化为数字
' 参    数: IPAddress 待转化的IP地址
' 返 回 值: Double类型的数字
' 涉及的表: 无
'===================================================================================
 Function IPAddressToNumber(IPAddress)
Dim arrayTemp
arrayTemp=Split(IPAddress,".")
If UBound(arrayTemp)<>3 Then
Err.Raise 1234,"IPAddressToNumber()","参数不是合法的IP地址值:[" & IPAddress & "]"
Exit Function
End If
IPAddressToNumber=CDbl(arrayTemp(3))
IPAddressToNumber=IPAddressToNumber+CDbl(arrayTemp(2)*256)
IPAddressToNumber=IPAddressToNumber+CDbl(arrayTemp(1)*256*256)
IPAddressToNumber=IPAddressToNumber+CDbl(arrayTemp(0)*256*256*256)
 End Function
'===================================================================================
' 函数名称: NumberToIpAddress()
'   函数原型:  NumberToIpAddress(ipNumber)
' 功    能: 将数字转化为IP地址
' 参    数: ipNumber 待转化的IP地址
' 返 回 值: IP字符串
' 涉及的表: 无
'===================================================================================
 Function NumberToIpAddress(ipNumber)
Dim arrayTemp(4)
Dim ipHigh,ipLow,iCnt
ipHigh=ipNumber/65536
ipLow=ipNumber-Fix(ipHigh)*65536
arrayTemp(0)=(ipHigh And &HFF00) / 256
arrayTemp(1)=ipHigh And &H00FF
arrayTemp(2)=(ipLow And &HFF00) / 256
arrayTemp(3)=ipLow And &H00FF
NumberToIpAddress=CStr(arrayTemp(0)) & "." & CStr(arrayTemp(1)) & "." & CStr(arrayTemp(2)) & "." & CStr(arrayTemp(3))
 End Function
'===================================================================================
' 函数名称: IpAddressToLocation()
'   函数原型:  IpAddressToLocation(IPAddress)
' 功    能: 将数字转化为IP地址
' 参    数: IPAddress 待转化的IP地址
' 返 回 值: 地理位置
' 涉及的表: 无
'===================================================================================
 Public Function IpAddressToLocation(IPAddress)
Dim numIP,sqlStr,conn,rst
numIP=IPAddressToNumber(IPAddress)
sqlstr="select top 1 * from tbDictIP where ip1<" & numIP & " and ip2>" & numIP & " order by ip2-ip1 ASC"
OpenConn conn,"/DataBase/System.mdb"
OpenRS rst,conn
rst.Open sqlstr
If rst.Bof Or rst.Eof Then
IpAddressToLocation="未知"
Else
IpAddressToLocation=rst("Country") & " " & rst("City")
End If
rst.Close
CloseRS rst
CloseConn conn
 End Function
%>