原理简述:
利用“ip.taobao.com”提供的一个功能,先获取json格式字符串,再解码json字符串
新建文件getaddress.class.php:
<?php
Classss GetAddress{
/*获取本地真实IP函数*/
function GetIp() {
$ip_json = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=myip");
$ip_arr=json_decode($ip_json,1);//JSON格式字符解码
if($ip_arr['code']==0){
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:
转载于:https://blog.51cto.com/sorryworld/1275801