如何在php中从服务器获取用户PC ip

时间:2015-03-03 07:30:02

标签: php

假设用户的PC IP为192.168.10.81(个人电脑窗口中的IPv4)

当此用户浏览www.mydomain.com时,我希望使用PHP从IP获取此www.mydomain.com/index.php

有可能吗?如果可能,怎么样?

2 个答案:

答案 0 :(得分: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'];
}

答案 1 :(得分: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