2015-03-03 76 views
0

假設用戶的PC的IP爲192.168.10.81(IPv4的在他的個人電腦的Windows)如何從服務器獲取用戶電腦的IP在PHP

當該用戶瀏覽www.mydomain.com我想用PHP

www.mydomain.com/index.php得到這個 IP

這可能嗎?如果可能,如何?

+0

'$ _ SERVER [ 'REMOTE_ADDR']'? – 2015-03-03 07:32:05

+0

該域是否位於同一內部網絡中?聽起來你想獲得PC的私有IP,這是不可能的。 – halloei 2015-03-03 07:59:54

回答

1

試試這個代碼..

if (!empty($_SERVER['HTTP_CLIENT_IP'])) { 
    $ip = $_SERVER['HTTP_CLIENT_IP']; 
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
} else { 
    $ip = $_SERVER['REMOTE_ADDR']; 
} 
+0

它給出了瀏覽此域名的真實ip。不是個人電腦的IP – Salim 2015-03-03 07:34:38

+0

我知道這個答案是從其他答案複製,所以有一些禮貌提供一個真正的作者的信用鏈接,而且,你應該解釋代碼的作用,而不僅僅是寫作***試試這個代碼。 .. *** – 2015-03-03 07:36:03

0

$ _ SERVER [「REMOTE_ADDR」]是你得到的唯一可靠的IP地址 - 這是直接從TCP協議棧提取是當前連接是從...建立。這意味着如果用戶通過代理連接,您將獲得代理的地址,而不是用戶的地址。

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

試試這個代碼:

<?php 
$ip = $_SERVER['REMOTE_ADDR']; 
$browser = $_SERVER['HTTP_USER_AGENT']; 
$referrer = $_SERVER['HTTP_REFERER']; 

if ($referred == "") { 
    $referrer = "This page was accessed directly"; 
    } 

echo "<b>Visitor IP address:</b><br/>" . $ip . "<br/>"; 
echo "<b>Browser (User Agent) Info:</b><br/>" . $browser . "<br/>"; 
echo "<b>Referrer:</b><br/>" . $referrer . "<br/>"; 
?> 

輸出像這樣:

訪問者IP地址:127.0.0.1

瀏覽器(用戶代理)信息:Mozilla的/ 5.0( Windows NT 6.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1

推薦人:

http://www.hexrara.com

相關問題