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

yipeiwu_com5年前PHP代码库

前言

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

利用PHP获取访客所在地位置在大型站点中的应用很广,当然,除了这个应用之外,还可以举一反三出许多好玩的东西,今天就在做一个小项目的时候,用到了,在站点不同地区显示不同内容的小功能,其实跟上面的实例差不多。

实现分析

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

PHP的代码如下:

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

JS代码如下:

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

我们主要用到的是PHP的代码,这里的IP地址是固定的,如果想要获取访客的IP地址,直接更改为 $ip = $_SERVER["REMOTE_ADDR"]; 就可以了

下面再贴一段根据地区显示不同内容的PHP代码,如下:

<?php 
 $ip = $_SERVER["REMOTE_ADDR"]; 
 $json = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip); 
 $json = json_decode($json, true); 
  
 if($json["province"]=="河北"){ 
  echo "document.writeln(\"河北");\n"; 
}//xiariboke.com 
 
 if($json["province"]=="河南"){ 
  echo "document.writeln(\"河南");\n"; 
} 
?> 

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

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

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

php unset全局变量运用问题的深入解析

PHP unset全局变量在实际使用中只能销毁局部变量,并不能实现全局变量的目的。下面我们就来具体解决这一问题。希望对大家有所帮助。PHP中语言中有些函数对于初学者来说在字面上是很难理解...

浅析php变量修饰符static的使用

静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。看看下面的例子:复制代码 代码如下:function test(){static $a=0;$a++;echo $...

简单的方法让你的后台登录更加安全(php中加session验证)

本文将以Joomla!后台链接为例,讲解如何“修改”我们的后台链接,使其更加安全。 原理:通过特定文件为后台入口注册session,否则失败退出。即直接使用原后台地址将无法登录后台。这样...

PHP实现基于回溯法求解迷宫问题的方法详解

本文实例讲述了PHP实现基于回溯法求解迷宫问题的方法。分享给大家供大家参考,具体如下: 引言 最近在leetcode上看了些算法题,有些看着很简单的很常用的东西,竟然一下子想不出来怎么求...

PHP闭包实例解析

本文实例分析了PHP程序设计中闭包的概念机用法,分享给大家供大家参考。具体分析如下: 通常来说,闭包也就是PHP的匿名函数, 但是和函数不同的是,闭包可以通过use使用函数声明时所在作用...