import socket
import os
import re
def get_host_ip():"""查詢本機ip地址:return:"""try:s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.connect(('8.8.8.8',80))# 能提取出本機ip 通過本機ip提取出其他設置ip = s.getsockname()[0]# ip地址、子網掩碼、默認網關、dns服務器baseinfo = os.popen('ipconfig/all')tempstream = baseinfo._streaminfostrs = tempstream.buffer.read().decode(encoding='gbk')infolists = infostrs.splitlines()validinfolist = []for index, value in enumerate(infolists):if ip in value:validinfolist = infolists[index: index+11]pattern = re.compile(r'\d+.\d+.\d+.\d+')for info in validinfolist:if '子網掩碼' in info or 'Mask' in info :subnetmask = re.findall(pattern, info)[0]if '默認網關' in info or 'ateway' in info :defgateway = re.findall(pattern, info)[0]if '默認網關' in info or 'ateway' in info :defgateway = re.findall(pattern, info)[0]if 'DHCP 服務器' in info or 'DHCP Server' in info:dhcpserver = re.findall(pattern, info)[0]if 'DNS'in info :dnsserver = re.findall(pattern, info)[0]print(subnetmask)print(defgateway)print(defgateway)print(dnsserver)finally:s.close()return ipif __name__ == '__main__':print(get_host_ip())