現在のグローバルIPv6プレフィックスをPythonでどのように取得できますか?現在のグローバルIPv6プレフィックスをPythonの変数として取得する方法
グローバルIP 2010:a:b:c::400/64
がeth0
にあるとします。このアドレスをどのようにしてPythonで取得できますか? プレフィックスを分割する方法はありますか?このようなプロセスのために
現在のグローバルIPv6プレフィックスをPythonでどのように取得できますか?現在のグローバルIPv6プレフィックスをPythonの変数として取得する方法
グローバルIP 2010:a:b:c::400/64
がeth0
にあるとします。このアドレスをどのようにして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アドレスがあること。
あなたは、Pythonのsubprocess
モジュールでcheck_output
を試すことができます。 同じのための簡単な例:
from subprocess import check_output
output=check_output(['ifconfig'],shell=True).decode('utf-8')
print(output)
これはifconfig
の出力を印刷します。希望、それは幸せなコーディングに役立ちます!
これは、 'ifconfig'がインストールされていることを前提としています。これは現代のLinuxシステム上にはないかもしれません。また、システムはLinuxであると想定しています。 –
インストールされていても、 'ip'は現代的な答えです。 – viraptor