根据现有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>
刷新页面,是不是达到预想的效果了呢?
以上所述就是本文的全部内容了,希望大家能够喜欢。