利用PHP获取访客所在地位置

如果是做大型项目的话,网站获取用户的本地信息就很关键了,比如58分类信息网,在用户访问的时候会自己判断用户所在地的信息,然后可以跳转到相应的分站上面,这样给用户的体验很好,而不是全国各地的用户全部都来访问北京站或者上海站。

利用PHP获取访客所在地位置在大型站点中的应用很广,当然,除了这个应用之外,还可以举一反三出许多好玩的东西。

制作这样的一个小功能,当然首先就要考虑使用第三方的IP接口,目前,大一点的IP接口有淘宝,新浪,网易,QQ等,最终选择了新浪IP归属地的API,使用上面也很简单,利用获取到的IP地址,使用新浪接口,返回一个状态码,然后根据状态码获取用户所在地的位置,然后再进行各个地区显示不同内容的判断。

PHP的代码如下:

  1. <?php  
  2. $ip = "218.192.3.42";  
  3. $json = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip);  
  4. $json = json_decode($json, true);  
  5. echo "IP地址:".$ip;//suppore.cn  
  6. echo "归属地:".$json["country"].$json["province"].$json["city"].$json["district"].$json["isp"];  
  7. ?>  

JS代码如下:

  1. <script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js" charset="utf-8"></script>  
  2. <script type="text/javascript">  
  3. alert(remote_ip_info.country+" "+remote_ip_info.city);  
  4. </script>  

我们主要用到的是PHP的代码,这里的IP地址是固定的,如果想要获取访客的IP地址,直接更改为 $ip = $_SERVER["REMOTE_ADDR"]; 就可以了,下面再贴一段夏日博客写出的根据地区显示不同内容的PHP代码,如下:

  1. <?php  
  2.     $ip = $_SERVER["REMOTE_ADDR"];  
  3.     $json = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip);  
  4.     $json = json_decode($json, true);  
  5.       
  6.     if($json["province"]=="河北"){  
  7.         echo "document.writeln(\"河北");\n"; 
  8. }//xiariboke.com 
  9.  
  10.     if($json["province"]=="河南"){ 
  11.         echo "document.writeln(\"河南");\n";  
  12. }  
  13. ?>  

这段代码没怎么整理与优化,在输出的时候,我这里输出了JS,这里可以更改为任何内容,甚至是跳转网址,另外,如果想要在静态页面中使用的话,也很简单,只要JS包含就可以了,代码如下:

  1. <script type="text/javascript" src="ip.php?action=test"></script>   

action 是传递的参数,如果没有用的话,可以删除掉。

X
赞助一下:
    支付宝    微信    QQ红包

打开支付宝扫一扫
利用PHP获取访客所在地位置
版权声明:若无特殊注明,本文皆为“懒人的小窝”原创,转载请保留文章出处。
本文链接:http://suppore.cn/272.html    百度已收录
正文到此结束

点击下方支持本站

点击支持下贵站吧
点击支持下贵站吧

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

微笑 可爱 憨笑 鼓掌 白眼 发呆 撇嘴 色 得意 吐 抠鼻 可怜 呲牙 惊讶 冷汗 流泪 大哭 发怒 抚摸 傲慢 惊恐 鄙视 疑问 奸笑 抓狂 偷笑 流汗 擦汗 晕 委屈 吓 衰 糗大了 威武 给力 牛逼

评论信息框

火箭正在发射中...


既然没有吐槽,那就赶紧抢沙发吧!