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();
  • 相关阅读:
    web api中允许跨域访问
    HTTP Error 500.19
    使用SQL语句时应该注意的一些问题
    关于EsayUI中datagrid重复提交后台查询数据的问题
    EF6中使用事务的方法
    jquery中常用的方法和注意点
    在EF中正确的使用事务
    css解决移动端1px边框问题
    判定 JS 数据类型的最佳解决方案
    将伪数组转化为真数组
  • 原文地址:https://www.cnblogs.com/helin/p/3625928.html
Copyright © 2011-2022 走看看