服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - PHP教程 - php实现根据IP地址获取其所在省市的方法

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

2020-09-22 12:50PHP教程网 PHP教程

今天,就讨论一下在PHP中如何获取用户IP地址、PHP根据IP判断用户所在城市以及PHP根据IP实现城市切换或跳转的问题。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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);

再发一个简化版的

?
1
2
3
4
5
6
7
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>
刷新页面,是不是达到预想的效果了呢?

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

延伸 · 阅读

精彩推荐