Использование WMI и PYWIN32 для изменения настроек IPV4 на карте Ethe rnet - PullRequest
1 голос
/ 16 февраля 2020

Я пытаюсь изменить адрес IPV4 на rnet -карте. Но когда я запускаю сценарий, меняется только маска подсети, а настройки IPV4 остаются «получать IP-адрес автоматически». Любая подсказка?

Информация: 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])

1 Ответ

1 голос
/ 17 февраля 2020

В одном из моих проектов я также пытался сделать это с помощью WMI, в конце концов изменил это на использование программы netsh. Вы можете использовать CreateProcess и передать необходимые параметры в netsh. Например, если имя адаптера Etne rnet равно 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/

...