Laravel:有效取得客戶端 IP 位址
Laravel 的框架提供了一個簡單的方法來取得客戶端 IP 位址。但是,某些用戶在產生伺服器 IP 位址時遇到了差異。為了尋求解決這個問題的方法,讓我們探索適當的方法並深入研究底層機制。
理想的方法
Laravel 提供了一個專用函數,Request:: ip(),用於擷取客戶端的 IP 位址。此方法封裝了處理可信任代理的邏輯,保證各種場景下的準確檢索。
內部實作
在幕後,Request::ip() 使用了 getClientIps來自 Symfony 請求物件的方法。此方法仔細解析以下標頭和優先順序:
如果這些可信標頭都不存在,則可信任標頭的IP 位址回傳(REMOTE_ADDR)。
基於排名的選擇
getClientIps 方法會依照下列條件重建IP 位址鏈:
根據預先設定的設定過濾掉受信任的代理
過濾鏈中的第一個IP位址被視為客戶端的IP,代表原始IP請求的來源。
以上是如何在 Laravel 中精確取得客戶端 IP 位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!