我需要编写一个脚本来获取用于未知路由的接口的 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
我认为该命令在您提到的所有系统中都可用。