Python で、特定のネットワーク インターフェイスが稼働しているかどうかを検出する方法はありますか?
私のスクリプトでは、ユーザーはネットワーク インターフェイスを指定しますが、他の操作を行う前に、インターフェイスが稼働していて、IP アドレスが割り当てられていることを確認したいと思います。
私はLinuxを使用しており、rootです。
Python で、特定のネットワーク インターフェイスが稼働しているかどうかを検出する方法はありますか?
私のスクリプトでは、ユーザーはネットワーク インターフェイスを指定しますが、他の操作を行う前に、インターフェイスが稼働していて、IP アドレスが割り当てられていることを確認したいと思います。
私はLinuxを使用しており、rootです。
@Gabriel Samfira が提案したように、私はnetifaces
. 次の関数は、IP アドレスが特定のインターフェイスに関連付けられている場合に True を返します。
def is_interface_up(interface):
addr = netifaces.ifaddresses(interface)
return netifaces.AF_INET in addr
ドキュメントはこちら
でファイルの内容を確認できます/sys/class/net/<interface>/operstate
。コンテンツがそうでないdown
場合、インターフェイスはアップしています。