我正在编写一个脚本,需要列出服务器的所有外部 IP。它需要与多个 NIC 一起工作。在 PHP 中获取所述 IP 地址的最佳方法是什么?
如果有任何帮助,我发现了这个问题,但是它是针对 Python 而不是 PHP; Python,如何获取具有多个 NIC 的所有外部 IP 地址
我正在编写一个脚本,需要列出服务器的所有外部 IP。它需要与多个 NIC 一起工作。在 PHP 中获取所述 IP 地址的最佳方法是什么?
如果有任何帮助,我发现了这个问题,但是它是针对 Python 而不是 PHP; Python,如何获取具有多个 NIC 的所有外部 IP 地址
要获取除Link-local以外的所有接口的 (IPv4) IP :
<?php
$command = '/sbin/ifconfig | awk -v RS="\n\n" \'{ for (i=1; i<=NF; i++) if ($i == "inet" && $(i+1) ~ /^addr:/) address = substr($(i+1), 6); if (address != "127.0.0.1") printf "%s\t%s\n", $1, address }\' | awk \'{ print $2}\'';
$ips = shell_exec($command);
echo $ips;
?>
在 Debian Linux 上测试。
如果您使用的是基于 Linux 的服务器,这应该可以为您完成:
$command = "/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'";
$ips = exec($command);
echo $ips;
我认为这可能是最适合你的
$command = "/sbin/ifconfig | grep inet | grep -v ':\|127.0.0.1' | awk '{print $2}'";
exec($command, $ips);
return $ips;
希望这可以帮助