首頁  >  文章  >  後端開發  >  使用代理程式時如何取得真實訪客IP位址?

使用代理程式時如何取得真實訪客IP位址?

Barbara Streisand
Barbara Streisand原創
2024-11-12 02:56:01807瀏覽

How to Get the Real Visitor IP Address When Using Proxies?

如何擷取真實的訪客IP 位址

嘗試使用預設PHP 程式碼取得訪客IP 位址時,當使用代理程式時,它可能無法擷取實際的IP位址。本文旨在透過提供強大的解決方案來解決此問題。

提供的PHP 程式碼有效地解決了這個挑戰:

<?PHP

function getUserIP()
{
    // Handle CloudFlare network's IP masking
    if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
              $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
              $_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
    }
    $client  = @$_SERVER['HTTP_CLIENT_IP'];
    $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
    $remote  = $_SERVER['REMOTE_ADDR'];

    if(filter_var($client, FILTER_VALIDATE_IP))
    {
        $ip = $client;
    }
    elseif(filter_var($forward, FILTER_VALIDATE_IP))
    {
        $ip = $forward;
    }
    else
    {
        $ip = $remote;
    }

    return $ip;
}


$user_ip = getUserIP();

echo $user_ip; // Output IP address [Ex: 177.87.193.134]


?>

此程式碼使用各種標頭系統地檢查訪客的IP 位址,考慮潛在的代理使用情況,包括CloudFlare 使用的代理。它會仔細過濾檢索到的 IP 位址,以最準確地表示訪客的真實 IP 位址。

透過實作此程式碼,您可以確保始終獲得訪客的真實 IP 位址,無論他們是否使用代理程式。

以上是使用代理程式時如何取得真實訪客IP位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn