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 相关文章推荐
第十三节 对象串行化 [13]
Oct 09 PHP
phpBB BBcode处理的漏洞
Oct 09 PHP
PHP开发需要注意的安全问题
Sep 01 PHP
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 PHP
PHP处理postfix邮件内容的方法
Jun 16 PHP
PHP多文件上传实例
Jul 09 PHP
php双层循环(九九乘法表)
Oct 23 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 PHP
七种PHP开发环境搭建工具
Jun 28 PHP
php实现简单四则运算器
Nov 29 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
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
php实现的Cookies操作类实例
2014/09/24 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
JQuery遍历json数组的3种方法
2014/11/08 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
用Python实现斐波那契(Fibonacci)函数
2016/03/25 Python
Python数组定义方法
2016/04/13 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
浅谈Python 多进程默认不能共享全局变量的问题
2019/01/11 Python
python写日志文件操作类与应用示例
2019/07/01 Python
python如何将图片转换素描画
2020/09/08 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
实习教师自我鉴定
2013/12/09 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
保护环境倡议书500字
2014/05/19 职场文书
本科毕业生自荐信
2014/05/26 职场文书
生物技术专业求职信
2014/06/10 职场文书
小学生清明节演讲稿
2014/09/05 职场文书
2014财务年度工作总结
2014/11/11 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers