如何在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