原理简述:

 

利用“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:

 

182156165.jpg