php实现根据IP地址获取其所在省市的方法


Posted in PHP onApril 30, 2015

根据现有IP地址获取其地理位置(省份,城市等)的方法

function GetIpLookup($ip = ''){  
  if(empty($ip)){  
    return '请输入IP地址'; 
  }  
  $res = @file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=' . $ip);  
  if(empty($res)){ return false; }  
  $jsonMatches = array();  
  preg_match('#\{.+?\}#', $res, $jsonMatches);  
  if(!isset($jsonMatches[0])){ return false; }  
  $json = json_decode($jsonMatches[0], true);  
  if(isset($json['ret']) && $json['ret'] == 1){  
    $json['ip'] = $ip;  
    unset($json['ret']);  
  }else{  
    return false;  
  }  
  return $json;  
} 
$ipInfos = GetIpLookup('123.125.114.144'); //baidu.com IP地址  
var_dump($ipInfos);

再发一个简化版的

function getIpAddress(){  
  $ipContent  = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js");  
  $jsonData = explode("=",$ipContent);   
  $jsonAddress = substr($jsonData[1], 0, -1);  
  return $jsonAddress;  
}  
$ip_info=json_decode(getIpAddress());

PHP根据IP地址实现城市切换或跳转

到这里,其实问题已经很简单了,用简单的js就通通搞定。C段如下:

//根据IP地址跳转指定页面js取得城市

var city='<?echo ipCity($xp_UserIp);?>'; //根据IP地址所有城市跳转到指定页面

if(city.indexOf("上海市")>=0){

         window.location.href="http://shanghai.demo.com/"; }
将开头的A段代码和上面的C段代码分别放在B段代码的头和尾,然后我们在需要跳转的页面加入以下代码:

<script src="/ipcity/ipaddress.php" type="text/javascript" language="javascript"></script>
刷新页面,是不是达到预想的效果了呢?

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
PHP 中的类
Oct 09 PHP
PHP实现的功能是显示8条基色色带
Oct 09 PHP
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
Feb 11 PHP
在项目中寻找代码的坏命名
Jul 14 PHP
PHP中的插件机制原理和实例
Jul 08 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
Apr 22 PHP
PHP程序员的技术成长规划
Mar 25 PHP
PHP实现的简单组词算法示例
Apr 10 PHP
php实现网页上一页下一页翻页过程详解
Jun 28 PHP
Yii框架 session 数据库存储操作方法示例
Nov 18 PHP
PHP接入支付宝接口失效流程详解
Nov 10 PHP
PHP实现根据银行卡号判断银行
Apr 29 #PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 #PHP
php实现中文字符截取防乱码方法汇总
Apr 29 #PHP
WIN8.1下搭建PHP5.6环境
Apr 29 #PHP
php筛选不存在的图片资源
Apr 28 #PHP
php+ajax实现无刷新动态加载数据技术
Apr 28 #PHP
php恢复数组的key为数字序列的方法
Apr 28 #PHP
You might like
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
2009/09/30 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
深入浅出php socket编程
2015/05/13 PHP
xtree.js 代码
2007/03/13 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
jQuery加PHP实现图片上传并提交的示例代码
2020/07/16 jQuery
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
python3.3实现乘法表示例
2014/02/07 Python
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
python实现可逆简单的加密算法
2019/03/22 Python
详解Python学习之安装pandas
2019/04/16 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
2014年秋季开学演讲稿
2014/05/24 职场文书
妈妈活动方案
2014/08/15 职场文书
十佳少先队员演讲稿
2014/09/12 职场文书
JS如何实现基于websocket的多端桥接平台
2021/05/14 Javascript
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python