繁体   English   中英

python netifaces - 如何获取当前使用的网络接口

[英]python netifaces - How to get currently used network interface

我在python中使用netifaces获取本地IP地址,但如何选择当前使用的(由系统)网络接口? 请帮帮我。 谢谢!

你问的是什么仍然不完全清楚,因为系统不一定有单独的“使用”界面。 系统可以具有多个具有地址的接口,并且可以使用它们全部来联系不同的系统。

系统通常(但不总是!)具有一个接口的“默认路由”,该接口通常用于联系系统未直接连接的主机。 如果这是你想要的,你可以使用Python netifaces模块,如下所示:

>>> import netifaces
>>> def_gw_device = netifaces.gateways()['default'][netifaces.AF_INET][1]

这将获取默认IPv4路由使用的设备的名称。 您可以像这样获取该接口的MAC地址:

>>> macaddr = netifaces.ifaddresses('enp0s25')[netifaces.AF_LINK][0]['addr']

您当然可以通过解析ip命令的输出来获取相同的信息,但使用netifaces模块要清晰得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM