使用 WMI 和 PYWIN32 更改以太网卡上的 IPV4 设置
Using WMI and PYWIN32 to change IPV4 settings on Ethernet card
我正在尝试更改以太网卡上的 IPV4 地址。
但是当我 运行 脚本只有子网掩码改变和 IPV4 设置
留在 "obtain an IP address automaticly"。
有什么线索吗?
信息:var_ip
、var_mask
、var_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/
我正在尝试更改以太网卡上的 IPV4 地址。 但是当我 运行 脚本只有子网掩码改变和 IPV4 设置 留在 "obtain an IP address automaticly"。 有什么线索吗?
信息:var_ip
、var_mask
、var_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/