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