getClientIP

function ip_first($ips) {
    if (($pos = strpos($ips, ',')) != false) {
        return substr($ips, 0, $pos);
    } else {
        return $ips;
    }
}

function ip_valid($ips) {
    if (isset($ips)) {
        $ip = ip_first($ips);
        $ipnum = ip2long($ip);
        if ($ipnum !== - 1 && $ipnum !== false && (long2ip($ipnum) === $ip)) {
            if (($ipnum < 167772160 || $ipnum > 184549375) && ($ipnum < - 1408237568 || $ipnum > - 1407188993) && ($ipnum < - 1062731776 || $ipnum > - 1062666241))
                return true;
        }
    }
    return false;
}

function getIP() {
    $check = array('HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'HTTP_VIA', 'HTTP_X_COMING_FROM', 'HTTP_COMING_FROM',
        'HTTP_CLIENT_IP', 'X-Real-IP');
    foreach ($check as $c) {
        if (ip_valid($_SERVER[$c])) {
            return ip_first($_SERVER[$c]);
        }
    }
    return $_SERVER['REMOTE_ADDR'];
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章