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


Posted in PHP onJanuary 18, 2017

前言

大家应该都有所体会,如果是做大型项目的话,网站获取用户的本地信息就很关键了,比如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 相关文章推荐
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 PHP
用mysql_fetch_array()获取当前行数据的方法详解
Jun 05 PHP
解析php中如何调用用户自定义函数
Aug 06 PHP
PHP中date与gmdate的区别及默认时区设置
May 12 PHP
使用PHP实现生成HTML静态页面
Nov 18 PHP
PHP图像裁剪缩略裁切类源码及使用方法
Jan 07 PHP
CodeIgniter视图使用注意事项
Jan 20 PHP
PHP基于单例模式编写PDO类的方法
Sep 13 PHP
thinkPHP数据库增删改查操作方法实例详解
Dec 06 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
php + WebUploader实现图片批量上传功能
May 06 PHP
laravel添加角色和模糊搜索功能的实现代码
Jun 22 PHP
PHP面向对象学习之parent::关键字
Jan 18 #PHP
php输出含有“#”字符串的方法
Jan 18 #PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 #PHP
php中preg_replace正则替换用法分析【一次替换多个值】
Jan 17 #PHP
yii使用bootstrap分页样式的实例
Jan 17 #PHP
关于Laravel Route重定向的一个注意点
Jan 16 #PHP
php文件管理基本功能简单操作
Jan 16 #PHP
You might like
如何使用脚本模仿登陆过程
2006/11/22 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
jquery 简单导航实现代码
2009/09/11 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
js实现图片轮播效果学习笔记
2017/07/26 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
Python深入06——python的内存管理详解
2016/12/07 Python
tf.truncated_normal与tf.random_normal的详细用法
2018/03/05 Python
python+Splinter实现12306抢票功能
2018/09/25 Python
Django如何将URL映射到视图
2019/07/29 Python
python函数不定长参数使用方法解析
2019/12/14 Python
python中p-value的实现方式
2019/12/16 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
python中append函数用法讲解
2020/12/11 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
印度网上药店:1mg
2017/10/13 全球购物
便携式太阳能系统的创新者:GOAL ZERO
2018/02/04 全球购物
酒店大堂副理的职责范文
2014/02/13 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
新春文艺演出主持词
2014/03/27 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
生产助理岗位职责
2014/06/18 职场文书
外国人来华邀请函
2015/01/31 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
教师教育心得体会
2016/01/19 职场文书