ホームページ >バックエンド開発 >Python チュートリアル >Python でローカル イントラネット IP アドレスを取得する方法
import socket def get_local_ip_address(): ip_address = '' try: # 获取本机主机名 hostname = socket.gethostname() # 获取本机IP ip_address = socket.gethostbyname(hostname) except: pass return ip_address
import subprocess def get_local_ip_address(): ip_address = '' try: # 获取IP地址 ip_address = subprocess.check_output(['hostname', '-I']).decode('utf-8').strip() except: pass return ip_address
このメソッドは、Unix システムで hostname コマンドを使用して IP アドレスを取得し、文字列形式で IP アドレスを返します。 Windows システムを使用している場合は、ipconfig コマンドを使用する必要があります。 Windows では、subprocess.check_output に正しいコマンドを渡して IP アドレスを取得できます。
import socket def get_local_ip_address(): ip_address = '' try: # 获取IP地址 ip_address = socket.getaddrinfo(socket.gethostname(), None, family=socket.AF_INET, proto=socket.IPPROTO_TCP)[0][4][0] except: pass return ip_address
このメソッドは、getaddrinfo 関数を使用してコンピューターの IP アドレスを取得し、文字列形式で IP アドレスを返します。
import netifaces def get_local_ip_address(): ip_address = '' try: # 获取网络接口列表 interfaces = netifaces.interfaces() # 查找第一个非本地回环接口的IP地址 for interface in interfaces: if interface == 'lo': continue addresses = netifaces.ifaddresses(interface) ip_addresses = addresses.get(netifaces.AF_INET) if ip_addresses: ip_address = ip_addresses[0]['addr'] break except: pass return ip_address
この方法では、netifaces モジュールを使用してコンピュータのネットワーク インターフェイス リストを取得し、最初の非ローカル ループバック インターフェイスの IP アドレスを見つけます。次に、IP アドレスを文字列形式で返します。
Linux システム上で Python プログラムを実行している場合は、ifconfig コマンドを使用してイントラネット IP アドレスを取得できます。以下は、Linux システムで使用できる Python 関数です。
import subprocess def get_local_ip_address(): ip_address = '' try: # 获取IP地址 output = subprocess.check_output(['ifconfig']).decode('utf-8') lines = output.split('\n') for line in lines: if 'inet ' in line and not line.startswith('127.0.0.1'): ip_address = line.split()[1] break except: pass return ip_address
このメソッドは、subprocess モジュールを使用して Linux ifconfig コマンドを実行し、コマンド出力から IP アドレスを抽出します。 IP アドレスを文字列形式で返します。
この方法は Linux システムにのみ適用できることに注意してください。別のオペレーティング システムを使用している場合は、前述のいずれかの方法を使用してコンピュータの内部 IP アドレスを取得します。
import os def get_local_ip_address(): ip_address = '' try: # 获取IP地址 ipconfig_process = os.popen('ipconfig') ipconfig_output = ipconfig_process.read() ipconfig_process.close() for line in ipconfig_output.split('\n'): if 'IPv4' in line: ip_address = line.split(': ')[-1] break except: pass return ip_address
以上がPython でローカル イントラネット IP アドレスを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。