2011-07-22 19 views
85

可能重複:
Function to get user ip address明確的方式來獲得用戶的IP地址PHP的

<?PHP 

$ipaddress = $_SERVER["REMOTE_ADDR"]; 

echo "Your IP is $ipaddress!"; 

?> 

有人告訴我,獲取IP地址的這種方式具有如能騙過的問題。有沒有更好的方法來收集IP地址?尋找更好的方式獲得IP地址的教程?

+1

不,沒有!可能會欺騙它,但我從來沒有在實踐中看到過它,或者讀過它在羣衆中做過的事情。 – Shef

+3

@genesis - 但這個問題有點混亂,不太清楚。我認爲除了$ _SERVER [「REMOTE_ADDR」]之外,不需要使用其他任何東西。沒有更好的了。愚蠢的IP地址將在IP級完成,因此您無法通過PHP解決/檢測它。 – TMS

回答

142

$_SERVER['REMOTE_ADDR']是您將獲得的唯一可靠的IP地址 - 它直接從TCP堆棧中提取,並且是當前建立連接的地方。這意味着如果用戶通過代理連接,您將獲得代理的地址,而不是用戶的地址。

其他任何基於頭的方法都不可靠,因爲HTTP頭文件很難僞造。如果你願意,你可以使用他們的信息,只要你不信任它。