PHP获取 ip、浏览器、操作系统信息

1、获取请求ip

2、php判断是否梯子访问

/*梯子判断*/
function get_vpn()
{
    $T   = false;
    $str = 'https://blackbox.ipinfo.app/lookup/'.GetUserIP();
    switch (httpGet($str, 0)) {
        case 'Y':
            $T = true;
            break;
        case 'y':
            $T = true;
            break;
        case 'N':
            $T = false;
            break;
        case 'n':
            $T = false;
            break;
        default:
            $T = true;
    }

    return $T;
}

3、IP地区判断

/*CDN获取IP地址*/
function GetUserIP()
{
    if (isset($_SERVER['HTTP_X_SHOPIFY_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_X_SHOPIFY_CLIENT_IP'];
    } else {
        if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
            $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
        } else {
            if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
                $ip = getenv('HTTP_CLIENT_IP');
            } elseif (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
                $ip = getenv('HTTP_X_FORWARDED_FOR');
            } elseif (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
                $ip = getenv('REMOTE_ADDR');
            } elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'],
                    'unknown')) {
                $ip = $_SERVER['REMOTE_ADDR'];
            }
        }
    }

    return $ip;
}

/*IP地区判断*/
function get_area($clientIP)
{
    $ip_add      = "";
    $appkey      = '4bd2987ea67c1ea77bb68f0ae8b2ef58';
    $url         = "http://apis.juhe.cn/ip/ipNew";
    $params      = array(
        "ip"    => $clientIP,//需要查询的IP地址或域名
        "key"   => $appkey,//应用APPKEY(应用详细页查询)
        "dtype" => "json",//返回数据的格式,xml或json,默认json
    );
    $paramstring = http_build_query($params);
    $content     = juhecurl($url, $paramstring);
    $result      = json_decode($content, true);
    if ($result) {
        if ($result['error_code'] == '0') {
            $ip_add = $result['result']['Country'].$result['result']['Province'].$result['result']['City'];
        } else {
            $ip_add = $result['error_code'].":".$result['reason'];
        }
    } else {
        $ip_add = "请求失败";
    }

    return $ip_add;
}

/**
 * 请求接口返回内容
 *
 * @param string $url    [请求的URL地址]
 * @param string $params [请求的参数]
 * @param int    $ipost  [是否采用POST形式]
 *
 * @return  string
 */
function juhecurl($url, $params = false, $ispost = 0)
{
    $httpInfo = array();
    $ch       = curl_init();

    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'JuheData');
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    if ($ispost) {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
        curl_setopt($ch, CURLOPT_URL, $url);
    } else {
        if ($params) {
            curl_setopt($ch, CURLOPT_URL, $url.'?'.$params);
        } else {
            curl_setopt($ch, CURLOPT_URL, $url);
        }
    }
    $response = curl_exec($ch);
    if ($response === false) {
        //echo "cURL Error: " . curl_error($ch);
        return false;
    }
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
    curl_close($ch);

    return $response;
}

4、获取操作系统、浏览器信息

PHP获取 ip、浏览器、操作系统信息
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    blank

    暂无评论内容