PHP获取IP所在地地址

 

原理简述:

利用“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所在地地址函数
        *@param $ip  p地址,默认为本机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

 

 

posted @ 2013-10-18 10:23  杀猪书生  阅读(458)  评论(0)    收藏  举报