zoukankan      html  css  js  c++  java
  • 根据IP地址获取IP的详细信息

    <?php
    header('Content-Type:text/html; charset=utf-8');
    
    function ip_data() {
        $ip  = GetIP();
        $url = 'http://ip.taobao.com/service/getIpInfo.php?ip=' . urlencode($ip);
        $ch  = curl_init();
        curl_setopt( $ch, CURLOPT_URL , $url );
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER , 1 );
        $ipdata = json_decode( curl_exec($ch) , true );
        curl_close($ch);  
        if( $ipdata['code'] ){
            die(' 请确保ip地址没有问题! ');
        }
        foreach( $ipdata['data'] as $k=>$v ){
            echo $k . ' : ' . $v . "<br>";
            
        }
    }  
    
    /* 获取用户真实地址
     * @return    string  返回用户ip
    */
    
    function GetIP(){
        if (isset($_SERVER)){
            if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
                $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
                /* 取X-Forwarded-For中第x个非unknown的有效IP字符? */
                foreach ($arr as $ip){
                    $ip = trim($ip);
                    if ($ip != 'unknown'){
                        $realip = $ip;
                        break;
                    }
                }
            }elseif (isset($_SERVER['HTTP_CLIENT_IP'])){
                $realip = $_SERVER['HTTP_CLIENT_IP'];
            }else{
                if (isset($_SERVER['REMOTE_ADDR'])){
                    $realip = $_SERVER['REMOTE_ADDR'];
                }else{
                    $realip = '0.0.0.0';
                }
            }
        }else{
            if (getenv('HTTP_X_FORWARDED_FOR')){
                $realip = getenv('HTTP_X_FORWARDED_FOR');
            }elseif (getenv('HTTP_CLIENT_IP')){
                $realip = getenv('HTTP_CLIENT_IP');
            }else{
                $realip = getenv('REMOTE_ADDR');
            }
        }
        preg_match("/[d.]{7,15}/", $realip, $onlineip);
        $realip = ! empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
        return $realip;
    }
    
    ip_data();
  • 相关阅读:
    对象实例化内存布局与访问定位
    方法区

    本地方法栈
    本地方法接口
    虚拟机栈
    程序计数器
    运行时数据区概述及线程
    自学》2.网页弹窗计算商品价格
    自学》1.用网站发邮件
  • 原文地址:https://www.cnblogs.com/helin/p/3625928.html
Copyright © 2011-2022 走看看