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 시스템에서 호스트 이름 명령을 사용하여 IP 주소를 얻고 IP 주소를 문자열 형식으로 반환합니다. Windows 시스템을 사용하는 경우 ipconfig 명령을 사용해야 합니다. subprocess.check_output에서 올바른 명령을 전달하여 Windows에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!