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。

posted @ 2022-03-21 16:29  小柴i  阅读(637)  评论(0编辑  收藏  举报