PHP - $ _SERVER [' SERVER_ADDR']变量是否始终是唯一的并且永远不会改变?

时间:2015-05-18 21:29:59

标签: php

我有三个关于PHP $_SERVER['SERVER_ADDR']变量的快速问题。变量是否是唯一的(整个互联网只有一个)?变量永远不会改变吗?如果其中任何一个问题都没有,有没有办法通过PHP在互联网上唯一地识别服务器?

1 个答案:

答案 0 :(得分:3)

您的问题有点不清楚,但在评论中您曾问过:

  

那么我可以使用gethostbyname($ _ SERVER ['SERVER_NAME'])来可靠地获取服务器的IP地址吗?

答案通常是:。虽然服务器的主机名不会更改,但IP可以在Web应用程序的生命周期内更改。 IP更改的原因可能是将服务器从一个主机重定位到另一个主机。

甚至基于循环的DNS负载平衡,其中多个IP地址分配给同一主机名。特别是当使用后者时,gethostbyname($_SERVER['SERVER_NAME'])将为每个DNS请求持续提供不同的IP地址。

另一个原因是负载均衡器后面的Web服务器。然后将负载均衡器的IP地址分配给主机名,在这种情况下,Web服务器本身(运行PHP的地方)具有内部地址。