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

php
2022-08-30 10:04:52

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

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

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

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

你觉得怎么样?


答案 1

那么gethostname()呢

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


答案 2

对于 PHP >= 5.3.0,请使用:

$hostname = gethostname();

对于 PHP < 5.3.0 但 >= 4.2.0,请使用

$hostname = php_uname('n');

对于 PHP < 4.2.0,请使用:

$hostname = getenv('HOSTNAME'); 
if(!$hostname) $hostname = trim(`hostname`); 
if(!$hostname) $hostname = exec('echo $HOSTNAME');
if(!$hostname) $hostname = preg_replace('#^\w+\s+(\w+).*$#', '$1', exec('uname -a')); 

推荐