利用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 相关文章推荐
人尽可用的Windows技巧小贴士之下篇
Mar 22 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
Nov 02 PHP
Zend Studio 实用快捷键一览表(精心整理)
Aug 10 PHP
php伪静态之APACHE篇
Jun 02 PHP
PHP打开和关闭文件操作函数总结
Nov 18 PHP
PHP把MSSQL数据导入到MYSQL的方法
Dec 27 PHP
PHP使用MPDF类生成PDF的方法
Dec 08 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
Jan 24 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
PHP children()函数讲解
Feb 03 PHP
PHP切割汉字的常用方法实例总结
Apr 27 PHP
PHP的Trait机制原理与用法分析
Oct 18 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
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
php查找任何页面上的所有链接的方法
2013/12/03 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
微信小程序request出现400的问题解决办法
2017/05/23 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
vue组件命名和props命名代码详解
2019/09/01 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
讲解Python中运算符使用时的优先级
2015/05/14 Python
浅析Python中signal包的使用
2015/11/13 Python
浅谈Python 中整型对象的存储问题
2016/05/16 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
实习评语大全
2014/04/26 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
团员年度个人总结
2015/02/26 职场文书
岗位聘任报告
2015/03/02 职场文书
中学教代会开幕词
2016/03/04 职场文书
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫