利用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 相关文章推荐
什么是MVC,好东西啊
May 03 PHP
C# Assembly类访问程序集信息
Jun 13 PHP
php引用返回与取消引用的详解
Jun 08 PHP
php 启动时报错的简单解决方法
Jan 27 PHP
ThinkPHP采用实现三级循环代码实例
Jul 18 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
PHP随机生成信用卡卡号的方法
Mar 23 PHP
9个比较实用的php代码片段
Mar 15 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
基于swoole实现多人聊天室
Jun 14 PHP
php将字符串转换为数组实例讲解
May 05 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使用curl发送json格式数据实例
2013/12/17 PHP
使用php清除bom示例
2014/03/03 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
用于table内容排序
2006/07/21 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
javascript截取字符串小结
2015/04/28 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
在Python的Tornado框架中实现简单的在线代理的教程
2015/05/02 Python
Zabbix实现微信报警功能
2016/10/09 Python
python数据预处理之将类别数据转换为数值的方法
2017/07/05 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
找到不普通的东西:Bonanza
2016/10/20 全球购物
校车安全责任书
2014/08/25 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
5.12护士节活动总结
2015/02/10 职场文书
安全第一课观后感
2015/06/18 职场文书
公务员处分决定书
2015/06/25 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
基于CSS制作创意端午节专属加载特效
2022/06/01 HTML / CSS
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers