我有三个关于PHP $_SERVER['SERVER_ADDR']
变量的快速问题。变量是否是唯一的(整个互联网只有一个)?变量永远不会改变吗?如果其中任何一个问题都没有,有没有办法通过PHP在互联网上唯一地识别服务器?
答案 0 :(得分:3)
您的问题有点不清楚,但在评论中您曾问过:
那么我可以使用gethostbyname($ _ SERVER ['SERVER_NAME'])来可靠地获取服务器的IP地址吗?
答案通常是:否。虽然服务器的主机名不会更改,但IP可以在Web应用程序的生命周期内更改。 IP更改的原因可能是将服务器从一个主机重定位到另一个主机。
甚至基于循环的DNS负载平衡,其中多个IP地址分配给同一主机名。特别是当使用后者时,gethostbyname($_SERVER['SERVER_NAME'])
将为每个DNS请求持续提供不同的IP地址。
另一个原因是负载均衡器后面的Web服务器。然后将负载均衡器的IP地址分配给主机名,在这种情况下,Web服务器本身(运行PHP的地方)具有内部地址。