」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 在 PHP 中使用 Cloudflare 時如何檢索實際訪客 IP 位址?

在 PHP 中使用 Cloudflare 時如何檢索實際訪客 IP 位址?

發佈於2024-11-08
瀏覽:718

How can I retrieve actual visitor IP addresses when using Cloudflare in PHP?

在PHP 中使用Cloudflare 檢索訪客IP 位址

追蹤網站訪客時,記錄他們的IP 位址是常見做法。但是,利用 Cloudflare 進行快取可能會帶來問題,因為傳回的 IP 位址可能是 Cloudflare 伺服器的 IP 位址。本文探討了利用 Cloudflare 時檢索實際訪客 IP 位址的方法。

Cloudflare 提供了其他有助於IP 位址檢索的伺服器變數:

  • $_SERVER["HTTP_CF_CONNECTING_IP" ]: 真實訪客IP位址
  • $_SERVERVERVER ["HTTP_CF_IPCOUNTRY"]: 訪客的IP位址Country
  • $_SERVER["HTTP_CF_RAY"]
  • $_SERVER["HTTP_CF_VISITOR"]:指示連線是透過HTTP 或HTTPS

要使用這些變量,實現以下程式碼:

if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
  $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}

此程式碼使用實際訪客 IP 位址更新 $_SERVER['REMOTE_ADDR'] 變數(如果可透過 Cloudflare 標頭取得)。

需要注意的是,如果IP 位址至關重要,可能需要驗證 $_SERVER["REMOTE_ADDR"] 值是否代表有效的 Cloudflare IP 位址。這是因為惡意行為者可能會操縱標頭以直接連接到伺服器 IP。

最新教學 更多>
  • 量子計算:它將如何重新定義技術
    量子計算:它將如何重新定義技術
    量子计算代表了 21 世纪最深刻的技术进步之一。与使用位来处理 0 或 1 信息的经典计算机不同,量子计算机使用可以同时存在于多种状态的量子位或量子位。计算领域的这一根本性转变有望重新定义技术,推动各个领域的突破并解决目前经典系统难以解决的问题。 在本文中,我们将探讨量子计算的工作原理、其潜在应用以...
    程式設計 發佈於2024-11-09
  • Set Composition 讓您的生活更輕鬆
    Set Composition 讓您的生活更輕鬆
    最後!當 Set 過去被引入時,它已經讓我們的生活變得更好了。我們能夠輕鬆產生獨特的列表,而且在尋找和設定這些列表上的項目方面也具有更好的效能。 這很棒,但我們仍然缺少其他語言所擁有的一些東西。這是真的,因為我們就是這樣。隨著 2024 年 Set 中加入新的組合方法,我們最終將能夠透過簡單的呼叫...
    程式設計 發佈於2024-11-09
  • 過去的爆炸:使用 Python 建立您自己的太空入侵者遊戲 - 逐步教程
    過去的爆炸:使用 Python 建立您自己的太空入侵者遊戲 - 逐步教程
    設定您的開發環境 在使用 Python 編寫 Space Invaders 之前,請確保您的開發環境設定正確。您需要在電腦上安裝 Python。建議使用 Python 3.8 或更高版本,以更好地相容於庫。此外,安裝 Pygame,它是一組專為編寫視訊遊戲而設計的 Python 模...
    程式設計 發佈於2024-11-09
  • SQL Server 中的日期時間和時間戳記有什麼不同?
    SQL Server 中的日期時間和時間戳記有什麼不同?
    了解SQL Server 中日期時間和時間戳記之間的差異雖然SQL Server 中的日期時間和時間戳記資料型別都處理日期和時間,但它們表現出根本的區別。 Datetime 是專為儲存日期和時間資訊而設計的資料類型。它支援多種格式和日期/時間計算。另一方面,Timestamp 並不是用來儲存日期和時...
    程式設計 發佈於2024-11-09
  • 如何在Python中尋找清單中的元素數量(列表長度)?
    如何在Python中尋找清單中的元素數量(列表長度)?
    在Python中查找列表中的元素數量(列表長度)在Python中,確定列表中的元素數量,也稱為列表長度,是一個常見的操作。為了實現這一點,我們可以利用 len() 函數。 例如,考慮列表 items = ["apple", "orange", "ba...
    程式設計 發佈於2024-11-09
  • 快速 HTML - ** 伺服器錯誤 NotFoundError:需要 k**
    快速 HTML - ** 伺服器錯誤 NotFoundError:需要 k**
    快速 HTML - 500 伺服器錯誤 NotFoundError:需要 2 pk 如果有人在使用快速 HTML 時遇到此問題,他們試圖從具有多個主鍵的表中獲取行並獲得需要 2 PK 或需要兩個主鍵的一些變化 問題 500 伺服器錯誤 NotFoundError: ...
    程式設計 發佈於2024-11-09
  • 如何有效率地檢索MySQL中最後插入的行?
    如何有效率地檢索MySQL中最後插入的行?
    檢索 MySQL 中最後插入的行:高效方法高效檢索 MySQL 中最後插入的行是資料庫程式設計中的常見任務。以下是實現此目的的兩種有效方法:1。時間戳列:理想的解決方案是建立一個 TIMESTAMP 列,在行插入時自動捕獲當前時間戳記。這提供了一種可靠且準確的方法來確定最近的記錄。 2。 ORDER...
    程式設計 發佈於2024-11-09
  • 在 Python 中處理 CSV 檔案時如何跳過標頭?
    在 Python 中處理 CSV 檔案時如何跳過標頭?
    使用Python 處理CSV 檔案時跳過標頭處理包含標頭的CSV(逗號分隔值)檔案時,通常需要在處理過程中排除這些標頭。本文解決了嘗試在 Python 中跳過標題時遇到的常見問題。 提供的程式碼片段遇到標題行受應用函數影響的問題。要修正此問題,讀者應注意 reader 變數會迭代 CSV 檔案中的行...
    程式設計 發佈於2024-11-09
  • 如何使用 PHP 中的 CURL 檢索 SSL 憑證資訊
    如何使用 PHP 中的 CURL 檢索 SSL 憑證資訊
    如何在PHP 中使用CURL 獲取SSL 證書信息在PHP 中使用SSL 證書時,通常需要訪問有關證書的信息,例如發行人、主題和到期日期。 Stream_context_create() 函數可用來建立指定要使用的 SSL 憑證的流上下文。然後可以使用stream_context_get_param...
    程式設計 發佈於2024-11-09
  • Java 已經到來 有什麼新功能?
    Java 已經到來 有什麼新功能?
    Java 23已正式发布!这是一个非 LTS(长期支持)版本。尽管它是一个短暂的版本,但 Java 23 包含了令人兴奋的改进、错误修复,并且还删除了您可能需要注意的功能和选项。 让我们深入了解新增内容以及它如何基于 JDK 21 和 JDK 22 等早期版本的功能构建。 范围值:基...
    程式設計 發佈於2024-11-09
  • 單一責任原則
    單一責任原則
    每個軟體元件應該只有一個且一個職責 軟體元件可以是類別、方法或模組 例如,瑞士軍刀是一種多用途工具,違反了軟體開發的單一責任原則,相反,刀是遵循單一責任的一個很好的例子(因為與瑞士軍刀不同,它只能用於切割可用於切割、打開罐頭、作為萬能鑰匙、剪刀等) 由於無論是現實世界或軟體開發,變化都是不變的,單...
    程式設計 發佈於2024-11-09
  • 如何在 Python 中列出定義的變數:「listout」的替代品?
    如何在 Python 中列出定義的變數:「listout」的替代品?
    在 Python 中存取定義的變數在 Python 中,追蹤所有定義的變數對於保持清晰度和調試至關重要。雖然 Python shell 缺乏用於顯示完整變數清單的內建功能(如 MATLAB 的「listout」命令),但有幾種替代方法可以實現此功能。 dir() dir() 函數提供目前作用域中定義...
    程式設計 發佈於2024-11-09
  • 如何在不中斷內容流的情況下將 Div 絕對放置在右側:解決 Float:right 與 Position:absolute 的困境
    如何在不中斷內容流的情況下將 Div 絕對放置在右側:解決 Float:right 與 Position:absolute 的困境
    右浮動和絕對定位困境已解決在您追求一個div 能夠無縫地將其自身與其父級右側對齊,同時避免干擾其他內容,您偶然發現了一個障礙:float:right 和position:absolute 的衝突行為。 Float 和 Absolute 的衝突本質Float :right 透過將其他元素推到左側來將元...
    程式設計 發佈於2024-11-09
  • Darshan Hiranandani 的解釋:如何使用 PHP 連接到 MySQL 資料庫?
    Darshan Hiranandani 的解釋:如何使用 PHP 連接到 MySQL 資料庫?
    大家好,我是 Darshan Hiranandani,我正在解釋如何使用 PHP 連接到 MySQL 資料庫? 要使用 PHP 連線到 MySQL 資料庫,您可以使用 mysqli 擴充或 PDO(PHP 資料物件)擴充。以下是這兩種方法的範例: 使用 mysqli 擴充
    程式設計 發佈於2024-11-09
  • 如何掌握 CSS 盒子模型以實現完美的網站佈局(+ Codepen 範例)
    如何掌握 CSS 盒子模型以實現完美的網站佈局(+ Codepen 範例)
    嘿,了不起的人!欢迎回到我的博客。 ?今天,我们将深入研究 CSS 盒子模型,揭秘如何确定每个元素的大小,以及如何使用这些知识来创建精确、现代和简洁的设计(本文末尾的实际示例)。 盒子模型简介 CSS 盒子模型是网页设计的基础,它规定了每个 HTML 元素如何在网页中占据空间。 盒子...
    程式設計 發佈於2024-11-09

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3