php獲取ip能處理局域網(wǎng)嗎

PHP
小樊
81
2024-11-18 13:54:07
欄目: 編程語言

是的,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 格式的,具體取決于客戶端的連接。

0