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

Barbara Streisand
發布: 2024-11-04 13:39:01
原創
786 人瀏覽過

How to Get the Real Visitor IP Address When Proxies Are in Use?

儘管使用代理,仍擷取真實訪客IP 位址

通常用於取得訪客IP 位址的PHP 程式碼是:

<code class="php"><?php echo $_SERVER['REMOTE_ADDR']; ?></code>
登入後複製

但是,當代理程式運作時,此方法無法擷取真實IP。為了尋求此問題的解決方案,讓我們深入研究替代方法。

用於IP 確定的自訂PHP 函數

考慮到CloudFlare 連接,提供的PHP 程式碼提供了全面的解決方案以及各種其他因素:

<code class="php">function getUserIP()
{
    // Handle CloudFlare connections
    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();</code>
登入後複製

此程式碼將IP 位址指派給變數$user_ip,然後可以根據需要在PHP 腳本中使用該變數。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!