利用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与SQL注入攻击[一]
Apr 17 PHP
解析PayPal支付接口的PHP开发方式
Nov 28 PHP
PHP高手需要要掌握的知识点
Aug 21 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
Nov 19 PHP
PHP获取数组的键与值方法小结
Jun 13 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
Sep 29 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
开启PHP的伪静态模式
Dec 31 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
Jan 03 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
Jan 05 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
May 27 PHP
PHP扩展Swoole实现实时异步任务队列示例
Apr 13 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-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
JS实现图片翻书效果示例代码
2013/09/09 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
2016/02/15 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
jQuery实现鼠标滑过图片移动特效
2016/12/08 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
python list使用示例 list中找连续的数字
2014/01/27 Python
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
Python函数式编程
2017/07/20 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
浅谈django orm 优化
2018/08/18 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
python中使用while循环的实例
2019/08/05 Python
python如何操作mysql
2020/08/17 Python
css3实现可拖动的魔方3d效果
2019/05/07 HTML / CSS
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
面试后感谢信怎么写
2014/02/01 职场文书
水电维修专业推荐信
2014/09/06 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
校园音乐节目广播稿
2015/08/19 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
Python中itertools库的四个函数介绍
2022/04/06 Python
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers