使用 WMI 和 PYWIN32 更改以太网卡上的 IPV4 设置

Using WMI and PYWIN32 to change IPV4 settings on Ethernet card

我正在尝试更改以太网卡上的 IPV4 地址。 但是当我 运行 脚本只有子网掩码改变和 IPV4 设置 留在 "obtain an IP address automaticly"。 有什么线索吗?

信息:var_ipvar_maskvar_gateway 来自条目小部件。

import wmi

def set_ip():

nic_configs = wmi.WMI().Win32_NetworkAdapterConfiguration(IPEnabled=True)

# First network adaptor
nic = nic_configs[0]
ip = var_ip.get()
subnetmask = var_mask.get()
gateway = var_gateway.get()

# Set IP address, subnet mask and default gateway
a = nic.EnableStatic(IPAddress=[ip], SubnetMask=[subnetmask])
b = nic.SetGateways(DefaultIPGateway=[gateway])

在我的一个项目中,我也尝试使用 WMI 来执行此操作,最后将其更改为使用 netsh 程序。您可以使用 CreateProcess 并将所需参数传递给 netsh。 例如,假设 Etnernet 适配器名称是 eth1,命令行实用程序 netsh 可以通过以下方式使用:

netsh interface ipv4 set address "eth1" dhcp

netsh interface ipv4 set address "eth1" static 192.168.0.1 255.255.255.0

另请参阅:https://www.howtogeek.com/103190/change-your-ip-address-from-the-command-prompt/