当前位置: 首页 > news >正文

php 通过ip获取省份,php实现根据IP地址获取其所在省市的方法_PHP

根据现有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=''; //根据IP地址所有城市跳转到指定页面

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

window.location.href="http://shanghai.demo.com/"; }

将开头的A段代码和上面的C段代码分别放在B段代码的头和尾,然后我们在需要跳转的页面加入以下代码:

刷新页面,是不是达到预想的效果了呢?

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

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

相关文章:

  • Zoundrywindows7下无法正常退出
  • php+生成json+省市,PHP将JSON格式省市(区)二级数据插入数据库
  • Windows重装导致Ubuntu无法启动,Grub信息丢失的解决方法
  • php 查看对象,php如何查看对象方法
  • flashback使用记录
  • 打印表格php,php – 如何使用简单的html dom打印表格的单元格
  • Winforms: Windows 7中Taskbar的新效果(3)——进度条
  • java题有两个矩阵A和B,java_java解一个比较特殊的数组合并题,给定两个排序后的数组A和B,其 - phpStudy...
  • QQ游戏到底是如何实现百万人同时在线并保持游戏高效率的呢?
  • matlab随机生成点图,matlab随机生成散点图
  • 菊子曰
  • php编写异常处理,PHP实现异常处理类的方法
  • Linux + FreeTDS + unixODBC + Haskell 访问 SQL Server 数据库
  • matlab函数accumarray,MATLAB常用函数
  • ora-12514问题解决
  • @angular/forms 源码解析之双向绑定
  • [译]前端离线指南(上)
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 30天自制操作系统-2
  • Electron入门介绍
  • Git同步原始仓库到Fork仓库中
  • Hibernate最全面试题
  • JS变量作用域
  • Mithril.js 入门介绍
  • mockjs让前端开发独立于后端
  • React-生命周期杂记
  • Vue2 SSR 的优化之旅
  • web标准化(下)
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • zookeeper系列(七)实战分布式命名服务
  • 给第三方使用接口的 URL 签名实现
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 在Unity中实现一个简单的消息管理器
  • #pragma预处理命令
  • (175)FPGA门控时钟技术
  • (3)nginx 配置(nginx.conf)
  • (二十三)Flask之高频面试点
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (学习日记)2024.01.09
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)甲方乙方——赵民谈找工作
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .dwp和.webpart的区别
  • .gitignore文件—git忽略文件
  • .java 9 找不到符号_java找不到符号
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • ??在JSP中,java和JavaScript如何交互?
  • @ModelAttribute注解使用
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [AIGC] Redis基础命令集详细介绍
  • [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型
  • [C++] sqlite3_get_table 的使用