有时候我们会在页面上显示用户的所在地区,这个原理是:先得到用户的IP,然后去查询将IP转换成一个数值,最后去查这个数值所在的范围,来得到用户所在的地方。
IP/域名归属地查询
IP转换成数值的方法:
假设IP是192.168.0.1
192*255*255*255+168*255*255+0*255+1
结果就是要得到的数值。
将ip地址转换为长整型
<%
Function CLngIP(ByVal asNewIP)
Dim lnResults
Dim lnIndex
Dim lnIpAry
lnIpAry = Split(asNewIP, ".", 4)
For lnIndex = 0 To 3
If Not lnIndex = 3 Then
lnIpAry(lnIndex) = lnIpAry(lnIndex) * (256 ^ (3 - lnIndex))
End If
lnResults = lnResults + lnIpAry(lnIndex)
Next
CLngIP = lnResults
End Function
%>
逆函数
<%
Function CStrIP(ByVal anNewIP)
Dim lsResults
Dim lnTemp
Dim lnIndex
For lnIndex = 3 To 0 Step -1
lnTemp = Int(anNewIP / (256 ^ lnIndex))
lsResults = lsResults & lnTemp & "."
anNewIP = anNewIP - (lnTemp * (256 ^ lnIndex))
Next
lsResults = Left(lsResults, Len(lsResults) - 1)
CStrIP = lsResults
End Function
%>
测试代码:
<%
response.write "IP:192.168.1.1 转换为长整型:"&CLngIP("192.168.1.1") &"<p>"
response.write "长整型数字:3232235777 转换为IP是:"& CStrIP("3232235777") &"<p>测试:中国asp之家"
%>
则屏幕输出:
