python修改Windows网络配置--修改不了VLAN
方法一:通过wmi修改网络配置
import wmi from time import sleep import re w = wmi.WMI() num1 = 0 try: # 遍历所有网卡 for network in w.Win32_NetworkAdapterConfiguration(IPEnabled=True): # print(network.Description) # 获取有效网卡 if network.IPAddress: print('{}. {}'.format(num1, network.IPAddress)) num1 += 1 # 网络索引数 n = int(input('请选择网卡:')) # 选择网卡 net = w.Win32_NetworkAdapterConfiguration(IPEnabled=True)[n] i = input('10.10.21.') # IP地址 add = ['10.10.21.{}'.format(i)] # 掩码 mask = ['255.255.255.0'] # 24位掩码 获取网络位 zhuji = re.findall(r'(\d+.\d+.\d+.)\d+', i) # 配置网关地址 g = input('网关:{}'.format(zhuji[0])) # 网关 gateway = [zhuji[0] + g] # 网关优先级 数字越低优先级越高 gateway_metric = [1] # dns dns = ['114.114.114.114', '223.5.5.5'] # 配置IP、掩码 sta = net.EnableStatic(IPAddress=add, SubnetMask=mask) # print(sta[0]) # 修改成功返回0 if sta[0] != 0: print('{} ip/掩码修改失败!!!'.format(add)) else: print('{} ip修改成功!'.format(add)) # 配置网关、网关优先级 gat = net.SetGateways(DefaultIPGateway=gateway, GatewayCostMetric=gateway_metric ) # print(gat[0]) if gat[0] != 0: print('{} 网关修改失败!!!'.format(gateway)) else: print('{} 网关修改成功!'.format(gateway)) # 配置DNS dnss = net.SetDNSServerSearchOrder(DNSServerSearchOrder=dns) # print(dns[0]) if dnss[0] != 0: print('{} dns修改失败!!!'.format(dns)) else: print('{} dns修改成功!'.format(dns)) print('\n修改结束!') sleep(6) except Exception as e: print('程序出错{}'.format(e)) sleep(6)
方法二:通过注册表修改网络配置(还没有验证)
遗留问题:
Windows下使用一根网线修改VLAN ID、IP、mask信息,在多个网段之间来回切换。
目前的解决方案,使用路由器连接多个网线,每个网口配置固定的VLAN、IP、mask。