我在服务器上运行了 PHP coe。我想要本地系统的 IP 地址。这个问题之前已经问过 - PHP 如何获取系统的本地 IP
当我使用上面帖子中提到的任何解决方案时,我只能获取主机名,而不是 IP 地址。
例如,在我的机器上,我有
eth0:10.0.2.15
eth1:192.168.1.115
当我运行以下代码时:
$localIP = getHostByName(getHostName());
我只得到主机名 - localvm
.我要192.168.1.115
更具体地说,我可以获取特定端口的 IP 地址吗?
您可以使用以下内容获取 Linux 中特定网络端口的 IP 地址:
function getInterfaceIP($interface = 'eth0')
{
$interfaceCommand = "/sbin/ifconfig " . $interface . " | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1 }'";
$output = exec($interfaceCommand);
return $output;
}
echo getInterfaceIP('eth0');
请注意,命令语法可能因操作系统而异。此示例适用于 Linux。PHP 没有任何内置类来执行此操作。
您可能希望添加另一个命令 - 获取所有可用网络接口的列表('ifconfig -s' 提供这些接口)。
接受的答案是正确的。但是,如果有人正在使用AWS云或Openstack,他可以利用cloud-init工具(已经存在)并使用魔术IP检索本地IP地址,如下所示:
curl http://169.254.169.254/latest/meta-data/local-ipv4/