PHP实现获取客户端IP并获取IP信息

前端技术 2023/09/01 PHP

代码很简洁,功能很实用,这里就不多废话了,直接奉上:

复制代码 代码如下:

<?php
/**
 * 获取客户端IP
 * @param  integer $type 返回类型 0:string,1:long
 * @return string|long
 */
function getClientIp($type = 0) {
    $ip = NULL;
    if (isset($_SERVER[\'HTTP_X_FORWARDED_FOR\'])) {
        $arr = explode(\',\', $_SERVER[\'HTTP_X_FORWARDED_FOR\']);
        $pos = array_search(\'unknown\',$arr);
        if(false !== $pos) unset($arr[$pos]);
        $ip  = trim($arr[0]);
    }elseif (isset($_SERVER[\'HTTP_CLIENT_IP\'])) {
        $ip = $_SERVER[\'HTTP_CLIENT_IP\'];
    }elseif (isset($_SERVER[\'REMOTE_ADDR\'])) {
        $ip = $_SERVER[\'REMOTE_ADDR\'];
    }
    $long = sprintf(\"%u\", ip2long($ip));
    $ip   = $long ? array($ip, $long) : array(\'0.0.0.0\', 0);
    return $ip[$type];
}
/**
 * 获取IP信息
 * @param  string|long $ip  IP地址
 * @return array
 */
function getIpInfo($ip)
{
    if (is_long($ip)) {
        $ip = long2ip($ip);
    }
    $api = \'http://ip.taobao.com/service/getIpInfo.php\';
    $ret = file_get_contents($api . \'?ip=\' . $ip);
    $ret = json_decode($ret, true);
    if ($ret[\'code\'] == 0) {
        return $ret[\'data\'];
    }
    return array();
}

以上就是本文的全部内容了,希望大家能够喜欢。

本文地址:https://www.stayed.cn/item/2708

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。