在PHP的特定以太网端口获取私有IP地址

在PHP的特定以太网端口获取私有IP地址

问题描述:

我在服务器上运行PHP系数。我想要本地系统的IP地址。这个问题已被问到 - PHP how to get local IP of system在PHP的特定以太网端口获取私有IP地址

当我使用上述文章中提到的任何解决方案时,我只能得到主机名,而不是IP地址。

例如我的机器上我有

为eth0:10.0.2.15
的eth1:192.168.1.115

当我运行下面的代码:

$localIP = getHostByName(getHostName()); 

我只得到主机名 - localvm。我想192.168.1.115

我可以得到私人IP地址吗?更具体地说,我可以在特定端口获得IP地址吗?

+0

这取决于操作系统。你在运行什么操作系统? –

+0

我正在使用亚马逊Linux和Cent OS进行本地开发。 – user3288346

你可能喜欢的东西拿到Linux的特定网络端口的IP地址:该命令语法可能从OS的不同而不同OS

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/