原理簡述:php
利用「ip.taobao.com」提供的一個功能,先獲取json格式字符串,再解碼json字符串json
新建文件getaddress.class.php:ide
<?php函數
Classss GetAddress{spa
/*獲取本地真實IP函數*/code
function GetIp() {orm
$ip_json = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=myip");blog
$ip_arr=json_decode($ip_json,1);//JSON格式字符解碼ip
if($ip_arr['code']==0){ci
return $ip_arr['data']['ip'];
}
}
/*獲取IP所在地地址函數*/
function GetIpFrom($ip=''){
if(empty($ip)){
$ip = self::GetIp();
}
$ip_json=@file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip);
$ip_arr=json_decode($ip_json,1);//JSON格式字符解碼
if($ip_arr['code']==0){
$country = $ip_arr['data']['country'];//國家,如中國
$area = $ip_arr['data']['area'];//地區,如華南
$region = $ip_arr['data']['region'];//省區,如廣東省
$city = $ip_arr['data']['city'];//城市,如汕頭市
$isp = $ip_arr['data']['isp']; //運營商,如電信
$addr = $country.$area.$region.$city.$isp;
return $addr;
}
else{
return false;
}
}
}
?>
新建演示文件demo.php:
<?php
include "getaddress.class.php";//加載類
$c = new GetAddress;
echo "當前IP地址爲:";
echo $c->GetIp();
echo "<br>";
echo "IP所在地地址及運營商信息:";
echo $c->GetIpFrom();
?>
訪問demo.php: