首页 > 编程语言 >php根据提交ip获取省市的方法

php根据提交ip获取省市的方法

时间:2023-07-23 09:00:10浏览次数:40  
标签:省市 return ip 跳转 json IP地址 jsonMatches 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='<?echo ipCity($xp_UserIp);?>'; //根据IP地址所有城市跳转到指定页面

if(city.indexOf("上海")>=0){
window.location.href="https://tcvpt.com/100688/"; }
将开头的A段代码和上面的C段代码分别放在B段代码的头和尾,然后我们在需要跳转的页面加入以下代码:

<script src="/ipcity/ipaddress.php" type="text/javascript" language="javascript"></script>
刷新页面,是不是达到预想的效果了呢?
————————————————
版权声明:本文为CSDN博主「夜刺」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/heiyefengdi/article/details/131876061

标签:省市,return,ip,跳转,json,IP地址,jsonMatches,php
From: https://www.cnblogs.com/yeci/p/17574663.html

相关文章

  • mac在本地docker启动mysql提示chown: changing ownership of '/var/lib/mysql': O
    解决mac在本地docker启动mysql提示chown:changingownershipof'/var/lib/mysql':O问题介绍在使用Docker在本地启动MySQL时,有时会遇到权限问题,导致出现chown:changingownershipof'/var/lib/mysql':O的错误提示。这篇文章将向您展示如何解决这个问题,并为您提供了一些代码......
  • PHP uniqid重复值的问题
    $str='';for($i=0;$i<1000100;$i++){$str.=uniqid().PHP_EOL;}returnfile_put_contents('1.log',$str);生成1000100条数据,重复值为0放心用吧,插入数据100万的量,应该考虑Java了......
  • JavaScript
    溢出属性p{height:100px;width:50px;border:3pxsolidred;/*overflow:visible;!*默认就是可见溢出还是展示*!*//*overflow:hidden;!*溢出部分直接隐藏*!*//*overflow:scroll;!*设......
  • EtherCAT转TCP/IP网关EtherCAT和TCP/IP
    你是否曾经为生产管理系统的数据互联互通问题烦恼过?曾经因为协议不同导致通讯问题而感到困惑?现在,我们迎来了突破性的进展!介绍捷米特JM-TCPIP-ECT,一款自主研发的Ethercat从站功能的通讯网关。它能够连接到Ethercat总线中做为从站使用,同时也可以连接到TCP/IP网络中做为服务器或客户......
  • python 使用 ip池
    使用IP池进行爬虫在进行网络爬虫时,我们经常会遇到被网站封禁IP的问题。为了解决这个问题,我们可以使用IP池来轮流使用不同的IP地址,从而避免被封禁。在本文中,我们将介绍如何使用Python来实现IP池,以及如何在爬虫中使用它。什么是IP池IP池是一个用于存储多个IP地址......
  • [PHP 开源推荐] RDebug —— 滴滴开源的一款用于 RD 研发、自测、调试的实用工具
    一、简介https://github.com/didi/rdebugRdebug是滴滴开源的一款用于RD研发、自测、调试的实用工具,可以被用来提升RD研发效率、保障代码质量进而减少线上事故。1.1背景鉴于微服务具有易于扩展、部署简单、技术异构性等优点,越来越多的服务都在采用微服务的架构模式。一个复......
  • JavaScript继承
    继承—通过原型1.共同functionA(){}functionB(){}constg={a:1,b:2,};我想让从A、B构造出来的对象都具有g其中的属性,就可以通过继承A.prototype=gA.prototype.constructor=Aconsole.log(A.prototype)//{a:1,b:2,constructor:[Function:Man]}......
  • P1060 [NOIP2006 普及组] 开心的金明 题解
    思路01背包模版题,唯一不同的是加了一个条件就是价格与重要度的乘积。转移方程为:dp[j]=max(dp[j],dp[j-w[i]]+w[i]*v[i]);这里加了滚动数组优化。代码#include<bits/stdc++.h>#definelllonglong#defineldlongdoubleusingnamespacestd;inlinevoidread(int&x){......
  • JavaScript多线程
    JavaScript多线程实现流程1.基本概念在开始讲解JavaScript多线程之前,我们需要先了解一些基本概念。单线程:JavaScript是一门单线程语言,即每次只能执行一项任务。这是因为JavaScript的设计初衷是用于前端交互和操作DOM,多线程会带来复杂性和安全性问题。多线程:多线程指的是同时......
  • JavaScript报告总结1300字
    JavaScript报告总结介绍JavaScript是一种轻量级的、解释性的编程语言,用于网页开发。它被广泛应用于前端开发,并且也可以运行在服务器端。本文将介绍JavaScript的一些基本概念和特性,并通过代码示例来说明。变量和数据类型在JavaScript中,使用var关键字来声明变量。变量可以存储不......