0
PythonでループバックではないローカルIPアドレスのリストを見つける方法はありますか?PythonでループバックされていないローカルIPアドレスを見つける
PythonでループバックではないローカルIPアドレスのリストを見つける方法はありますか?PythonでループバックされていないローカルIPアドレスを見つける
netifacesパッケージは、プラットフォームに依存しないネットワークインターフェイスとアドレス情報を取得する方法を提供します。 ipaddressパッケージ(Python3の標準、Python2の外部)は便利なis_loopback
メソッドを提供します。
それはまさに簡単なことではないのですが、ここで私のために少なくとも一度働いていたいくつかのコードは次のとおりです。
import netifaces
import ipaddress
from pprint import pprint
def get_local_non_loopback_ipv4_addresses():
for interface in netifaces.interfaces():
# Not all interfaces have an IPv4 address:
if netifaces.AF_INET in netifaces.ifaddresses(interface):
# Some interfaces have multiple IPv4 addresses:
for address_info in netifaces.ifaddresses(interface)[netifaces.AF_INET]:
address_object = ipaddress.IPv4Address(unicode(address_info['addr'], 'utf-8'))
if not address_object.is_loopback:
yield address_info['addr']
pprint(list(get_local_non_loopback_ipv4_addresses()))
address_info
変数はまた、あなたがより多くの情報のためにアクセスすることができnetmask
とbroadcast
キーを持っていること。
オブジェクトには、同様のクエリで使用できるis_private
とis_global
というメソッドもあります。