获取IP地址的不同方式

时间:2010-04-06 11:04:43

标签: php

我实际上是在经历问题1636644 ..并且对此感到困惑

" The getenv() function access to any environment variable to get the related value! "

另外..

" It would probably be better to use $_SERVER['REMOTE_ADDR']; to prevent incompatibilities between servers. "

这可能是什么样的兼容性问题?

最后,它说$ _SERVER是一个包含许多元素的数组,但我发现那里只有IP地址..这个数组是否存储了其他任何东西?

道歉所有这些问题都包含在一个......这是bcoz这些都是相关的..

6 个答案:

答案 0 :(得分:3)

  

如果您的服务器API是ASAPI(IIS),则“getenv”函数不起作用。

source

另外,请参阅this link了解$ _SERVER变量中可能包含的内容。

答案 1 :(得分:1)

$ _ SERVER可能包含很多信息;你可能感兴趣:

  • HTTP_CLIENT_IP
  • HTTP_FORWARDED
  • HTTP_X_FORWARDED_FOR
  • REMOTE_ADDR

答案 2 :(得分:1)

要查看所有$_SERVER包含的内容,请执行以下操作:

echo "<pre>";
print_r($_SERVER);
echo "</pre>";

pre标签只是使输出可以在浏览器中显示。

要查看服务器正在设置的所有环境变量(以及更多),请创建一个只有以下内容的脚本:

<?php

phpinfo();

?>

它将作为PHP Variables列在底部。

环境变量的差异可以基于HTTP服务器(apache vs IIS)和其他因素,例如页面是否通过SSL提供。

答案 3 :(得分:0)

我认为这些不兼容性是因为Web服务器管理其环境变量的方式不同。

$ _SERVER变量本身可以管理这些差异。

回答你的上一个问题,你可以这样访问$ _SERVER数组的变量:

$_SERVER['SCRIPT_NAME']
$_SERVER['REQUEST_URI']

依此类推......你可以在这里看到引用:http://www.php.net/manual/en/reserved.variables.server.php

答案 4 :(得分:0)

创建一个包含以下内容的php页面,以查看$ _SERVER的内容以及有关您服务器的大量其他有用信息。

<?php phpinfo(); ?>

答案 5 :(得分:0)

$ _ SERVER ['ROMOTE_ADDR'],ROMOTE_ADDR,getHostByName()使用这3种方式你可以找到ip地址