我一直在嘗試獲取LAN中連接的計算機的客戶端IP地址,如果我使用getenv('REMOTE_ADDR')或$ _SERVER ['REMOTE_ADDR']它返回不同的IP似乎它獲得了計算機使用的瀏覽器的代理地址,當我嘗試getenv('HTTP_X_FORWARDED_FOR')時,它不會返回任何內容,並且$ _SERVER ['HTTP_X_FORWARDED_FOR']有一個未定義索引的錯誤。我嘗試了所有可能的代碼,我發現在獲得真正的IP地址,但沒有任何工作。請幫忙。在PHP中getenv('HTTP_X_FORWARDED_FOR')在任何情況下都不會返回
0
A
回答
0
客戶端HTTP代理的預期用途之一是可以隱藏組織的內部拓撲。
如果您控制代理,您可以將其設置爲可靠地報告標題中的原始IP地址,但不能保證其他人會這樣做。
由於隱藏拓撲的能力在HTTP中是有意的,所以您必須訴諸於「惡意」的做法,如簽名的applet,activeX控件或其他執行方法放鬆的安全性。
0
這裏是一個短,更清潔的方式來獲得準確的IP地址:
function get_ip_address(){
foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key){
if (array_key_exists($key, $_SERVER) === true){
foreach (explode(',', $_SERVER[$key]) as $ip){
$ip = trim($ip); // just to be safe
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false){
return $ip;
}
}
}
}
}
它的工作很好..
相關問題
- 1. PHP - switch語句,在任何情況下都不會中斷
- 2. ng-show在任何情況下都不返回true
- 3. Scanner.equals()返回在任何情況下
- 4. SelectedIndexChanged事件在任何情況下都不會觸發
- 5. jquery事件在任何情況下都不會觸發
- 6. GETENV(「HTTP_XXX)返回任何
- 7. 在什麼情況下會http.ListenAndServe返回
- 8. Rails:where子句在任何情況下都不起作用
- 9. TeeInputStream和PipedStream在任何情況下都不起作用
- 10. 並行AsyncTask問題(應用程序在任何情況下都不會掛起)
- 11. Win32快捷菜單在任何情況下都不會發送消息
- 12. 安卓相機意圖不會在RESULT_OK情況下返回
- 13. sqlite位列在每種情況下都返回'false'值
- 14. CheckBoxList'.Selected'在每種情況下都返回false
- 15. PropType不是在任何情況下
- 16. 的Javascript功能,不以任何情況下返回值
- 17. git ls-remote在任何回購中都會返回128
- 18. 如何在不返回任何值的情況下創建方法
- 19. 在不返回值的情況下在java arraylist中搜索
- 20. sqlite3_step()在教程情況下返回SQLITE_MISUSE
- 21. 在什麼情況下document.open()返回null?
- 22. fn_cdc_map_lsn_to_time在某些情況下返回NULL
- 23. TextToSpeech.isSpeaking()在什麼情況下返回true?
- 24. file_exists在所有情況下返回false
- 25. getcwd()在什麼情況下返回NULL?
- 26. 在哪種情況下NavigationService.CanGoBack返回false?
- 27. 「會話」不會在目前情況下
- 28. 在所有情況下都不會調用Swift BLE功能didConnectPeripheral
- 29. jQuery的if語句在任何情況下都觸發
- 30. c#或vb.net在任何情況下都會產生模塊構造函數嗎?
其可選的頭,你使用Wireshark的/小提琴手等來首先驗證它在請求中的存在? –
如果'print_r($ _ SERVER)'沒有顯示你之後的IP地址,那麼服務器就沒有這條信息。 –
它不存在於$ _SERVER數組中它是否與我的php.ini或xampp的配置文件有關? –