首页 > 技术交流 > 利用QQ的IP库实现ip所属地等信息查询
利用QQ的IP库实现ip所属地等信息查询 2012-5-15

利用QQ的IP库:ip.qq.com 实现IP对应的所属地等信息的查询。

<%
ips=split(fcompany(28),"$")
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")

baiming=false

for i=0 to ubound(ips)-1
 if userip=ips(i) then
  baiming=true
  exit for
 end if
next

 

Function leleToStr(str)
Dim stream
Set stream=Server.CreateObject("ADODB.Stream")
With stream
   .Type=1
   .Mode=3
   .Open
   .Write str
   .Position = 0
   .Type = 2
   .Charset = "gb2312"
   leleToStr = .ReadText
   .Close
End With
Set stream=Nothing
End Function


'获取IP所在地区
Function getIPAddress(ip)
'on error resume next
 
 dim xmlhttp,url
 url = "http://ip.qq.com/cgi-bin/searchip?searchip1="&ip
 set xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
 xmlhttp.open "get",url,false
 xmlhttp.send
 
 '开始截取字符      
 dim StartStr,EndStr,html
 
 html = leleToStr(xmlhttp.responseBody)
 
 StartStr = Instr(html,"该IP所在地为:")      
 EndStr = Instr(html,"如果该IP")      
 html = mid(html,StartStr,EndStr-StartStr)
 'response.Write(html)
 '再次获取
 StartStr = Instr(html,"<span>")
 StartStr = StartStr + 6
 EndStr = Instr(html,"</span>")
 html = mid(html,StartStr,EndStr-StartStr)
 
 getIPAddress = html
 if err then err.clear:html = ""
 set xmlhttp = nothing
End Function

if baiming=false then

 if instr(getIPAddress(userip),"中国")>0 then
 
 response.Write("你是中国IP:["&userip&"],如果有误请联系管理员加白名单")
 response.End()
 
 end if
end if

%>

先对IP白名单的进行过滤。

上一篇:PHP中checkbox值处理 下一篇:PHP string 函数