通过IP获取具体地址源代码(08AccessIP数据库)
在制作评论时想实现用户来自于哪,那么这里一定得用到通过Ip来进行判断。自己在把程序写好后也共享给大家使用使用下面的使用代码中,在连接数据进行查库时有很大的改进的,这里我就没有写出改进后的程序,留给大家发挥吧。
也只共享出Access版,Mssql存储过程版暂时保留不共享(抱歉)
下面是使用代码:
<%
if Request.ServerVariables("HTTP_X_FORWARDED_FOR")="" then
UserIp=Request.ServerVariables("REMOTE_ADDR")
else
UserIp=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
end if
function Get_IPAddress(Ip)
Dim IpStr1,IpStr2,IpStr3,IpStr4
If Ubound(Split(Ip,"."))=3 Then
If Ip="127.0.0.1" Then Ip="192.168.0.1"
IpSplit=Split(Ip,".")
IpStr1 =IpSplit(0)
IpStr2 =IpSplit(1)
IpStr3 =IpSplit(2)
IpStr4 =IpSplit(3)
if IpStr1>255 or IpStr2>255 or IpStr3>255 and IpStr4>255 then
Get_IPAddress=""&IpStr1&"."&IpStr2&"."&IpStr3&".*"
Exit Function
end if
IpNum=Cint(IpStr1)*256*256*256+Cint(IpStr2)*256*256+Cint(IpStr3)*256+Cint(IpStr4)-1
Dim IpdbUrl,IpConnStr,IpConn,IpSqlStr
IpdbUrl = "Acc_AddressIp.mdb" '解压后的数据库(可以自行更改名或路径)
IpConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(IpdbUrl)
Set IpConn = Server.CreateObject("ADODB.Connection")
IpConn.Open IpConnStr
Set RsIp=IpConn.exeCute("Select top 1 Country,City from IpAddress where StartIp>="&IpNum&" and EndIp>="&IpNum&"")
If RsIp.eof And RsIp.bof Then
Get_IPAddress=""&IpStr1&"."&IpStr2&"."&IpStr3&".*"
else
'如果只想到城市取如下
Get_IPAddress=RsIp("Country")
'如果是取至详细,用下面代码,则需屏蔽上面
'Get_IPAddress=""&RsIp("Country")&" "&RsIp("City")
end if
Set RsIp=nothing
IpConn.Close
Set IpConn=nothing
else
Get_IPAddress=""
end if
End Function
'调用结果放到你希望的位置即可
Response.Write"欢迎来自"&Get_IPAddress(UserIp)&"的朋友"
%>
08AccessIP数据库地址:http://www.
所收录的IP地址,我已经通纯真IP数据库升级到最新的(当天)
[[it] 本帖最后由 天涯听雨 于 2008-6-27 18:20 编辑 [/it]]