我在服务器上运行PHP coe。我想要本地系统的IP地址。之前已经问过这个问题 - PHP how to get local IP of system
当我使用上述帖子中提到的任何解决方案时,我只能获取主机名,而不是IP地址。
e.g。在我的机器上我有
eth0:10.0.2.15
ETH1:192.168.1.115
当我运行以下代码时:
$localIP = getHostByName(getHostName());
我只获得主机名 - localvm
。我想要192.168.1.115
我可以获取私人IP地址吗?更具体地说,我可以在特定端口获取IP地址吗?
答案 0 :(得分:3)
您可以通过以下方式获取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'提供这些接口)。
答案 1 :(得分:0)
接受的答案是正确的。但是,如果某人正在使用AWS云或Openstack,他可以使用cloud-init工具(已经存在)并使用魔术IP检索本地IP地址,如下所示:
curl http://169.254.169.254/latest/meta-data/local-ipv4/