[英]Laravel : Added a package that can get address from ip address but showing error stevebauman/location
[英]Laravel request showing '::1' for IP address
我正在嘗試在 Laravel 中查找用戶的 IP 地址。 request->ip()
似乎可以完成這項工作,但這只是返回::1
。 我也試過$_SERVER['REMOTE_ADDR']
,但得到相同的結果; $_SERVER
為我返回以下內容:
array:24 [▼
"DOCUMENT_ROOT" => "xxx"
"REMOTE_ADDR" => "::1"
"REMOTE_PORT" => "51995"
"SERVER_SOFTWARE" => "PHP 5.5.32 Development Server"
...
]
REMOTE_ADDR
對我來說總是::1
。 我嘗試了 3 種不同的 WiFi 網絡。 我做錯了什么嗎?
編輯:在$_SERVER
關聯數組中,沒有任何轉發,所以我不期望 localhost。
我知道這是我的本地機器。 有沒有辦法在測試中將其存根,以便我可以對其進行斷言(例如,它匹配某種格式)?
我假設您在提出請求的同一台服務器/計算機上運行您的網站。
::1
是127.0.0.1
或 IPv6 中的localhost
(您當前的網卡地址)。
因此,如果您將網站放在遠程服務器上,您將獲得用戶 IP 地址。
我猜您可以在配置文件中選擇 IPv4 或 IPv6 顯示。
發生這種情況,如果您的項目位於本地主機上,請上傳到服務器。
這可能是因為 $_SERVER['REMODE_ADDR'] 僅在存在遠程地址時才定義,即有人從瀏覽器請求您的頁面。 使用 cron 腳本在本地執行並且設置可能為空。 如果它破壞了您的代碼,請嘗試在腳本開始時自行設置:
if( !isset($_SERVER['REMODE_ADDR']) ) {
$_SERVER['REMODE_ADDR'] = '127.0.0.1';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.