使用 php 获取主机名的最佳方法

新手上路,请多包涵

我有一个安装在多台服务器和我们所有开发人员笔记本电脑上的 php 应用程序。我需要一种快速可靠的方法来获取服务器的主机名或其他一些唯一且可靠的系统标识符。到目前为止,这是我们的想法:

<? $hostname = (!empty($_ENV["HOSTNAME"])) ? $_ENV["HOSTNAME"] : env('HOSTNAME'); ?>

<? $hostname = gethostbyaddr($_SERVER['SERVER_ADDR']); ?>

<? $hostname = exec('hostname'); ?>

你怎么看?

原文由 mattweg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

那 gethostname() 呢?

编辑:我认为这可能不是一个选项,具体取决于您的环境。它是 PHP 5.3 中的新功能。 php_uname(‘n’) 可以作为替代方案。

原文由 zombat 发布,翻译遵循 CC BY-SA 2.5 许可协议

接受的答案 gethostname() 实际上可能会给你不准确的价值,就像我的情况一样

gethostname()         = my-macbook-pro     (incorrect)
$_SERVER['host_name'] = mysite.git         (correct)

gethostname() 的值显然是错误的。小心它。

更新如评论更正

主机名给你计算机名,而不是网站名,我的错。我在本地机器上的结果是

gethostname()         = my-macbook-pro     (which is my machine name)
$_SERVER['host_name'] = mysite.git         (which is my website name)

原文由 Hammad Khan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏