1

我正在编写一个脚本,需要列出服务器的所有外部 IP。它需要与多个 NIC 一起工作。在 PHP 中获取所述 IP 地址的最佳方法是什么?

如果有任何帮助,我发现了这个问题,但是它是针对 Python 而不是 PHP; Python,如何获取具有多个 NIC 的所有外部 IP 地址

4

3 回答 3

3

要获取除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 上测试。

于 2013-08-21T20:19:51.123 回答
2

如果您使用的是基于 Linux 的服务器,这应该可以为您完成:

$command = "/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'";
$ips = exec($command);
echo $ips;
于 2013-08-21T19:45:23.917 回答
0

我认为这可能是最适合你的

$command = "/sbin/ifconfig | grep inet | grep -v ':\|127.0.0.1' | awk '{print $2}'";
exec($command, $ips);
return $ips;

希望这可以帮助

于 2018-11-30T12:44:46.940 回答