是的,PHP 可以獲取局域網(wǎng)內(nèi)的 IP 地址。您可以使用 $_SERVER['SERVER_ADDR']
變量來獲取服務(wù)器 IP 地址,然后使用 $_SERVER['REMOTE_ADDR']
變量來獲取客戶端(即用戶)的 IP 地址。在局域網(wǎng)內(nèi),這兩個(gè)地址通常是相同的。
以下是一個(gè)簡單的示例:
<?php
// 獲取服務(wù)器 IP 地址
$server_ip = $_SERVER['SERVER_ADDR'];
echo "服務(wù)器 IP 地址: " . $server_ip . PHP_EOL;
// 獲取客戶端 IP 地址
$client_ip = $_SERVER['REMOTE_ADDR'];
echo "客戶端 IP 地址: " . $client_ip . PHP_EOL;
?>
請(qǐng)注意,$_SERVER['REMOTE_ADDR']
可能返回 IPv4 或 IPv6 地址。如果您只需要獲取 IPv4 地址,可以使用 inet_pton()
函數(shù)將 IP 地址轉(zhuǎn)換為二進(jìn)制格式,然后使用 inet_ntop()
函數(shù)將其轉(zhuǎn)換回可讀格式。例如:
<?php
// 獲取客戶端 IP 地址
$client_ip = $_SERVER['REMOTE_ADDR'];
echo "客戶端 IP 地址: " . $client_ip . PHP_EOL;
// 將 IP 地址轉(zhuǎn)換為二進(jìn)制格式
$binary_ip = inet_pton(AF_INET, $client_ip);
// 將二進(jìn)制格式的 IP 地址轉(zhuǎn)換回可讀格式
$readable_ip = inet_ntop(AF_INET, $binary_ip);
echo "客戶端 IP 地址(可讀格式): " . $readable_ip . PHP_EOL;
?>
這將確保您獲取到的 IP 地址是 IPv4 或 IPv6 格式的,具體取決于客戶端的連接。