python - 在python中确定CONNECTED接口(interface)(linux)的IP地址

标签 python linux networking ip-address

在我的 Linux 机器上,3 个网络接口(interface)中的 1 个实际上可能连接到互联网。我需要获取当前连接接口(interface)的 IP 地址,请记住,我的其他 2 个接口(interface)可能已分配 IP 地址,只是未连接。

我可以通过我的每个接口(interface) ping 一个网站以确定哪个接口(interface)具有连接性,但我希望比等待 ping 超时更快地完成此操作。我不想依赖外部网站的运行。

更新:

我所有的接口(interface)都可能有 IP 地址和网关。这适用于嵌入式设备。所以我们允许用户在 eth0eth1 之间进行选择。但是,如果用户告诉我们使用的接口(interface)上没有连接,我们会返回说 eth2(理论上)将始终有效。

所以我需要做的是首先检查用户的选择是否已连接,如果是则返回该 IP。否则我需要获取 eth2 的 ip。我可以很好地获取接口(interface)的 IP,它只是确定实际连接了哪个接口(interface)。

最佳答案

如果系统的默认网关是可靠的,那么从 route -n 的输出中获取包含 "UG"(注意空格)的行将还包含网关的IP和事件接口(interface)的接口(interface)名称。

关于python - 在python中确定CONNECTED接口(interface)(linux)的IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3885160/

相关文章:

python - PS3 Controller 驱动程序 -> uinput-> python?不知何故?

Linux 启动时运行

linux - OpenLDAP 错误 : entry -1 has no dn Slaptest won't work

ios - 使用Parse是否比设置自己的身份验证更好?

Python-创建类的对象而无需在创建时重复自己

python - 为什么可变变量不能在没有链接的情况下一起分配?

python - 使 python 类列表的列表索引成为可能

c++ - 如何为使用 makefile 构建的整个项目生成一个大型依赖映射?

java - 使用多线程代码防止DOS攻击

python-3.x - 使用 Python 以编程方式从 Docker 容器内获取主机的 IP