假設用戶的PC的IP爲192.168.10.81(IPv4的在他的個人電腦的Windows)如何從服務器獲取用戶電腦的IP在PHP
當該用戶瀏覽www.mydomain.com
我想用PHP
www.mydomain.com/index.php
得到這個
IP
這可能嗎?如果可能,如何?
假設用戶的PC的IP爲192.168.10.81(IPv4的在他的個人電腦的Windows)如何從服務器獲取用戶電腦的IP在PHP
當該用戶瀏覽www.mydomain.com
我想用PHP
www.mydomain.com/index.php
得到這個
IP
這可能嗎?如果可能,如何?
試試這個代碼..
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'];
}
它給出了瀏覽此域名的真實ip。不是個人電腦的IP – Salim 2015-03-03 07:34:38
我知道這個答案是從其他答案複製,所以有一些禮貌提供一個真正的作者的信用鏈接,而且,你應該解釋代碼的作用,而不僅僅是寫作***試試這個代碼。 .. *** – 2015-03-03 07:36:03
$ _ 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
推薦人:
'$ _ SERVER [ 'REMOTE_ADDR']'? – 2015-03-03 07:32:05
該域是否位於同一內部網絡中?聽起來你想獲得PC的私有IP,這是不可能的。 – halloei 2015-03-03 07:59:54