如何在python中获取当前全局IPv6前缀?如何在Python中获取当前全局IPv6前缀作为变量
假设我在eth0
上有全球IP 2010:a:b:c::400/64
,我怎样才能在python中得到这个地址? 有没有办法分割前缀?
如何在python中获取当前全局IPv6前缀?如何在Python中获取当前全局IPv6前缀作为变量
假设我在eth0
上有全球IP 2010:a:b:c::400/64
,我怎样才能在python中得到这个地址? 有没有办法分割前缀?
您可以使用netifaces做到这一点:
>>> import netifaces
>>> addrs=netifaces.ifaddresses('ens3')
>>> addrs[netifaces.AF_INET6]
[{'netmask': 'ffff:ffff:ffff:ffff::/64', 'addr': '2001:19f0:4400:4983:5400:ff:fe54:1677'}, {'netmask': 'ffff:ffff:ffff:ffff::/64', 'addr': 'fe80::5400:ff:fe5e:1977%ens3'}]
注意有与fe80
开始链路本地IPv6地址。
对于这样的过程,你可以尝试在subprocess
模块python的check_output
。 为相同的简单示例:
from subprocess import check_output
output=check_output(['ifconfig'],shell=True).decode('utf-8')
print(output)
这将打印的ifconfig
输出。希望它有帮助,快乐的编码!
这里假定安装了'ifconfig',它可能不在现代Linux系统上。它还假定系统是Linux,它可能不是。 –
即使安装,ip是现代的答案。 – viraptor