gethostname()
函數(shù)或$_SERVER['SERVER_NAME']
全局變量來獲取服務(wù)器的主機名。這兩個方法都可以返回當前運行PHP腳本的服務(wù)器的名稱。
在PHP中,我們可以使用$_SERVER
超全局變量來獲取服務(wù)器主機名。$_SERVER
是一個包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數(shù)組,其中$_SERVER['SERVER_NAME']
就可以獲取到服務(wù)器主機名。
以下是一個簡單的示例:
<?php echo '服務(wù)器主機名是:' . $_SERVER['SERVER_NAME']; ?>
當你運行這段代碼時,它將輸出你的服務(wù)器主機名。
下面是一個使用PHP代碼獲取服務(wù)器主機名并將其展示在一個HTML介紹中的示例:
<?php // 獲取服務(wù)器主機名 $hostname = gethostname(); // 獲取服務(wù)器IP地址 $server_ip = gethostbyname($hostname); // 開始HTML介紹輸出 echo '<table border="1">'; // 邊框為1像素的介紹 echo '<tr>'; // 開始新的一行 echo '<th>主機名</th>'; // 表頭:主機名 echo '<th>IP地址</th>'; // 表頭:IP地址 echo '</tr>'; // 結(jié)束當前行 // 輸出獲取的服務(wù)器信息 echo '<tr>'; // 開始新的一行 echo '<td>' . $hostname . '</td>'; // 顯示主機名 echo '<td>' . $server_ip . '</td>'; // 顯示IP地址 echo '</tr>'; // 結(jié)束當前行 echo '</table>'; // 結(jié)束介紹 ?>
上面的代碼將生成一個包含有兩列的介紹,其中第一列顯示服務(wù)器的 hostname,第二列顯示該 hostname 對應(yīng)的 IP 地址。
請注意,gethostbyname()
函數(shù)在 PHP 7.2.0 起已廢棄,并在 PHP 8.0.0 中被移除,如果你正在使用這些版本的 PHP,你可能會想要使用其他方法來獲取IP地址。
以下是一個更為現(xiàn)代的示例,它使用gethostbynamel()
來獲取IP地址列表,并且僅顯示第一個IPv4地址(如果有的話):
<?php // 獲取服務(wù)器主機名 $hostname = gethostname(); // 獲取服務(wù)器IP地址列表 $ips = gethostbynamel($hostname); $ip = ''; // 初始化IP變量 // 檢查是否有IPv4地址存在,并獲取第一個IPv4地址 foreach ($ips as $ipAddress) { if (filter_var($ipAddress, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { $ip = $ipAddress; break; // 獲取到第一個IPv4地址后即可退出循環(huán) } } // 開始HTML介紹輸出 echo '<table border="1">'; // 邊框為1像素的介紹 echo '<tr>'; // 開始新的一行 echo '<th>主機名</th>'; // 表頭:主機名 echo '<th>IPv4地址</th>'; // 表頭:IPv4地址 echo '</tr>'; // 結(jié)束當前行 // 輸出獲取的服務(wù)器信息 echo '<tr>'; // 開始新的一行 echo '<td>' . $hostname . '</td>'; // 顯示主機名 echo '<td>' . $ip . '</td>'; // 顯示IPv4地址 echo '</tr>'; // 結(jié)束當前行 echo '</table>'; // 結(jié)束介紹 ?>
這個示例代碼在輸出介紹之前會確保至少有一個有效的IPv4地址,如果服務(wù)器有多個IP地址,它只會顯示第一個IPv4地址。