获取Ubuntu和Mac主界面的IP地址

获取Ubuntu和Mac主界面的IP地址

我需要编写一个脚本来获取用于未知路由的接口的 IP 地址(例如 0.0.0.0/0 路由通过的位置)

该脚本应该可以在 Ubuntu、Debian、Arch 和 Mac OS 系统上运行,无需安装额外的软件包。

在 Ubuntu 上,我使用hostname -I,它给出了主 IP 地址。但在旧版本的 ubuntu、debian 和 arch 以及 Mac OS 中,-Flag-I不可用。

第二个想法是解析ifconfig- 输出,但由于每个系统上的命名都非常不同,例如在德国系统中没有addr:但有不同的东西,这也行不通。

我需要它来编写一个小脚本来启动一个 Web 应用程序和一个小的 Python-Webserver 来服务静态内容。然后我们的设计师使用该脚本,他们几乎无法编写一些 html 和 css,但对 bash 一无所知。

答案1

该命令route为您提供有关用于访问不同 IP 地址的路由以及设备名称的信息。

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
10.0.0.0        *               255.255.0.0     U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

我认为该命令在您提到的所有系统中都可用。

相关内容