利用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+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
Mar 07 PHP
PHP导入Excel到MySQL的方法
Apr 23 PHP
php通过COM类调用组件的实现代码
Jan 11 PHP
PHP编码规范的深入探讨
Jun 06 PHP
解决File size limit exceeded 错误的方法
Jun 14 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
Dec 25 PHP
微信公众号判断用户是否已关注php代码解析
Jun 24 PHP
PHP重定向与伪静态区别
Feb 19 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 PHP
PHP yield关键字功能与用法分析
Jan 03 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
Apr 16 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
DedeCms模板安装/制作概述
2007/03/11 PHP
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
PHP类的反射用法实例
2014/11/03 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
python 获取字符串MD5值方法
2018/05/29 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
2018/12/19 Python
详解Python传入参数的几种方法
2019/05/16 Python
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
Python队列RabbitMQ 使用方法实例记录
2019/08/05 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
高中自我鉴定范文
2013/11/03 职场文书
商业融资计划书
2014/04/29 职场文书
领导班子四风对照检查材料
2014/09/23 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
毕业证明书
2015/06/19 职场文书