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目录与文件操作
Dec 30 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
zend framework配置操作数据库实例分析
Dec 06 PHP
destoon实现调用自增数字从1开始的方法
Aug 21 PHP
ThinkPHP模板中数组循环实例
Oct 30 PHP
PHP统计目录中文件以及目录中目录大小的方法
Jan 09 PHP
微信支付开发订单查询实例
Jul 12 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 PHP
Laravel中如何增加自定义全局函数详解
May 09 PHP
Yii2框架redis基本应用示例
Jul 13 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
Apr 26 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
使用adodb lite解决问题
2006/12/31 PHP
php下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
记录mysql性能查询过程的使用方法
2013/05/02 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
学习YUI.Ext第五日--做拖放Darg&amp;Drop
2007/03/10 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
基于Vue实现图书管理功能
2017/10/17 Javascript
利用Promise自定义一个GET请求的函数示例代码
2019/03/20 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
实例详解Python模块decimal
2019/06/26 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
写出二分查找算法的两种实现
2013/05/13 面试题
注塑工厂厂长岗位职责
2013/12/02 职场文书
公证书标准格式
2014/04/10 职场文书
演讲稿格式
2014/04/30 职场文书
二审答辩状格式
2015/05/22 职场文书
美丽人生观后感
2015/06/03 职场文书
班主任培训研修日志
2015/11/13 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
SQL SERVER存储过程用法详解
2022/02/24 SQL Server
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技