这个asp版本的,其他的版本原理一直。
新浪ip地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=
给ip传入什么,就查询那个ip的地址信息。
如 http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=27.225.173.43
返回Json数据:
var remote_ip_info = {"ret":1,"start":"27.225.168.0","end":"27.225.175.255","country":"\u4e2d\u56fd","province":"\u7518\u8083","city":"\u767d\u94f6","district":"","isp":"\u7535\u4fe1","type":"","desc":""};
程序原理:
1.服务器端获取到客户端的ip地址
2.服务器端将客户端ip地址拼接到ip查询接口上,然后发送一个请求,得到接口返回信息
3.将接口返回信息输出到<script>标签中,即成为javascript代码。
4.直接使用remote_ip_info,根据省跳转到不同的界面。
<% Function getIP() Dim strIPAddr If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then strIPAddr = Request.ServerVariables("REMOTE_ADDR") ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1) ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1) Else strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR") End If getIP = Trim(Mid(strIPAddr, 1, 30)) End Function Function GetHttpPage(url, charset) Dim http Set http = Server.createobject("Msxml2.ServerXMLHTTP") http.Open "GET", url, false http.Send() If http.readystate<>4 Then Exit Function End If GetHttpPage = BytesToStr(http.ResponseBody, charset) Set http = Nothing End function Function BytesToStr(body, charset) Dim objStream Set objStream = Server.CreateObject("Adodb.Stream") objStream.Type = 1 objStream.Mode = 3 objStream.Open objStream.Write body objStream.Position = 0 objStream.Type = 2 objStream.Charset = charset BytesToStr = objStream.ReadText objStream.Close Set objStream = Nothing End Function dim curIp dim ipInterface curIp= getIp() '获取当前客户端ip ipInterface="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip="+curIp '客户端ip查询接口 %> <script type= "text/javascript"> //省数据: //name:省名, //code:省编号,暂未用到 //url:跳转到该省的页面,如果为空,则跳转到默认首页 //----------------------------------------------- var provincesArray = [ {name:"甘肃",code:1,url:"0931/"}, {name:"江苏",code:2,url:"025/"}, {name:"山西",code:3,url:"0971/"}, {name:"新疆",code:4,url:""}, {name:"青海",code:5,url:""}, {name:"北京",code:6,url:""}, {name:"上海",code:7,url:""}, {name:"黑龙江",code:8,url:""}, {name:"吉林",code:9,url:""} ]; //-------------------------------------------- var defaultIndex="home/";//默认首页,用于没有查找到省和没有跳转地址时使用。 <%=GetHttpPage(ipInterface,"GBK")%> var curProvince = remote_ip_info.province; alert(curProvince); for(var i=0;i<provincesArray.length;i++){ if(provincesArray[i].name.indexOf(curProvince)!=-1){//找到了该ip的省 if(provincesArray[i].url){//url不为空 defaultIndex=provincesArray[i].url; } break; }; } window.location.href=defaultIndex;//浏览器跳转到相应界面 </script>
原创文章,转载请注明出处。
也欢迎大家访问我的电影站。
电影114 http://www.dianying114.cn