有 5 种方法可获取 php 中的内网 ip:使用 gethostbyname() 函数使用 $_server['server_addr'] 变量使用 exec() 函数使用 socket_create() 和 socket_connect() 函数使用 ifconfig 命令
如何获取 PHP 中的内网 IP
获取 PHP 中的内网 IP 有多种方法,以下是最常见和最有效的方法:
1. 使用 gethostbyname() 函数
$ip = gethostbyname('localhost');
2. 使用 $_SERVER['SERVER_ADDR']
立即学习“PHP免费学习笔记(深入)”;
此变量存储了服务器的内网 IP 地址。
$ip = $_SERVER['SERVER_ADDR'];
3. 使用 exec() 函数
$ip = exec('hostname -I');
4. 使用 socket_create() 和 socket_connect() 函数
$socket = socket_create(AF_INET, SOCK_DGRAM, 0);
socket_connect($socket, '8.8.8.8', 53);
$ip = socket_getsockname($socket);
socket_close($socket);
5. 使用 ifconfig 命令
$ip = shell_exec('ifconfig | grep -Eo 'inet (addr:)?([0-9]*.){3}[0-9]*' | grep -Eo '[0-9]*.){3}[0-9]*'');
注意:
- 上述方法中,$ip 变量将包含服务器的内网 IP 地址。
- 并非所有方法在所有操作系统和服务器配置上都可用。
- 始终检查方法的可用性并处理可能的错误。