Pep*_*nCZ 2 python linux ip-address
我在python中使用netifaces获取本地IP地址,但如何选择当前使用的(由系统)网络接口?请帮帮我.谢谢!
lar*_*sks 11
你问的是什么仍然不完全清楚,因为系统不一定有单独的"使用"界面.系统可以具有多个具有地址的接口,并且可以使用它们全部来联系不同的系统.
系统通常(但不总是!)具有一个接口的"默认路由",该接口通常用于联系系统未直接连接的主机.如果这是你想要的,你可以使用Python netifaces模块,如下所示:
>>> import netifaces
>>> def_gw_device = netifaces.gateways()['default'][netifaces.AF_INET][1]
Run Code Online (Sandbox Code Playgroud)
这将获取默认IPv4路由使用的设备的名称.您可以像这样获取该接口的MAC地址:
>>> macaddr = netifaces.ifaddresses('enp0s25')[netifaces.AF_LINK][0]['addr']
Run Code Online (Sandbox Code Playgroud)
您当然可以通过解析ip命令的输出来获取相同的信息,但使用该netifaces模块要清晰得多.
| 归档时间: |
|
| 查看次数: |
4980 次 |
| 最近记录: |