有没有使用python3在本地获得默认网络接口的方法?

2024-10-01 15:40:35 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我想用Python得到默认的网络接口。 在google之后,我得到了pynetinfo可以做到的。但是pynetinfo似乎对Python3不起作用。 有没有其他方法来代替pynetinfo?在


Tags: 方法google网络接口python3pynetinfo
2条回答

如果您使用的是Linux,您可以直接在/proc/net/route上检查路由表。此文件包含系统的路由参数,下面是一个示例:

Iface   Destination Gateway     Flags   RefCnt  Use Metric  Mask        MTU Window  IRTT
eth1    0009C80A    00000000    0001    0       0   0       00FFFFFF    0   0       0
eth2    0000790A    00000000    0001    0       0   0       0080FFFF    0   0       0
eth3    00007A0A    00000000    0001    0       0   0       0080FFFF    0   0       0
eth0    00000000    FE09C80A    0003    0       0   0       00000000    0   0       0

在本例中,所有到网络10.200.9.0/24、10.121.0.0/25和10.122.0.0/25的流量分别通过eth1、eth2和eth3广播,其余包使用eth0接口发送到网关10.200.9.254。所以问题是如何使用Python编程实现这个目标?在

^{pr2}$

使用pyroute2

from pyroute2 import IPDB
ip = IPDB()
# interface index:
print(ip.routes['default']['oif'])
# interface details:
print(ip.interfaces[ip.routes['default']['oif']])
# release DB
ip.release()

相关问题 更多 >

    热门问题