ОБНОВЛЕНИЕ: Множество обновлений этого вопроса, так как я выяснил, как получить Индекс NIC, но он не позволяет мне устанавливать IP. Чего мне не хватает, если он не примет настройки IP при попытке применить его?
Мне нужно написать сценарий для изменения настроек сетевого адаптера в Python 3.7, но основывать его на вводе пользователем, где перечислены все сетевые адаптеры на ноутбуке, а затем пользователь выбирает правильный адаптер.
Я использую модуль WMI и пробовал много разных способов сделать это без удачи. Я могу получить список перечисленных адаптеров, а затем предоставить ввод. Я просто не могу перевести этот выбранный номер адаптера в найденный WMI сетевой адаптер.
import wmi
#List NICs by Index and Description
c = wmi.WMI()
for nic in c.Win32_NetworkAdapterConfiguration(IPEnabled=True):
print(nic.Index, nic.Description)
#Choose which NIC to apply changes to:
nic_selection_index = c.Win32_NetworkAdapterConfiguration(Index = input('Choose Network Adapter Number on left to change: '))
#Will be hidden once working
print(nic_selection_index)
#Get IP Info to use on NIC
ip = input('Enter IP to use: ')
subnetmask = input('Enter Subnet Mask to use: ')
gateway = input('Enter Default Gateway to use: ')
print(ip)
print(subnetmask)
print(gateway)
## Set IP address, subnetmask and default gateway
## Note: EnableStatic() and SetGateways() methods require *lists* of values to be passed
nic_selection_index.EnableStatic(IPAddress=[ip],SubnetMask=[subnetmask])
nic_selection_index.SetGateways(DefaultIPGateway=[gateway])
#Results:
Traceback (most recent call last):
File "test nic change.py", line 56, in <module>
nic_selection_index.EnableStatic(IPAddress=[ip],SubnetMask=[subnetmask])
AttributeError: 'list' object has no attribute 'EnableStatic'
Я ссылался на другие вопросы, которые устанавливают IP-адрес, но не устанавливают его на основе введенного пользователем ввода. Мне нужно иметь возможность запрашивать информацию у пользователя. Спасибо !!