获取本机所有网卡的 IP 地址:
IPs = socket.gethostbyname_ex(socket.gethostname())[-1]
获取正在上网的本机网卡 IP 地址:
WIndows:
[a for a in os.popen('route print').readlines() if ' 0.0.0.0 ' in a][0].split()[-2]
Linux:
os.popen("ifconfig | grep inet").readlines()[0].strip().split(' ')[1]
优雅的获取 IP(推荐)
import socketdef get_host_ip():try:s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.connect(('8.8.8.8', 80))ip = s.getsockname()[0]finally:s.close()return ip
