Как проверить изменения конфигурации сети WMI Windows в Python? - PullRequest
0 голосов
/ 07 апреля 2020

Я создаю программу, которая автоматически настроит устройство с IP-адресом, чтобы оно было готово к использованию в моей сети. IP-устройство использует веб-приложение в качестве интерфейса, где вы можете изменить его настройки и конфигурацию сети, например, IP-адрес.

В настоящее время способ, которым я это делаю, не так надежен, как хотелось бы.

В настоящее время я использую библиотеку Win32_NetworkAdapterConfiguration для поиска текущей конфигурации сети. Затем я добавляю IP-интерфейс по умолчанию для IP-устройства, используя этот код:

def ChangeNetworkProperties(self, device_ip_interface):
    # Handle new IPv4 Interface Object
    new_ip = device_ip_interface.ip + 1 #Adding the next one up currently
    new_netmask = device_ip_interface.netmask
    new_gateway = device_ip_interface.gateway

    resp = self.nic.EnableStatic(
        IPAddress=[new_ip], SubnetMask=[new_netmask])
    self.nic.SetGateways(DefaultIPGateway=[new_gateway])

    return resp[0] # Handle errors after the return

Затем я сплю, чтобы изменения вступили в силу, а затем просто подключаюсь к веб-приложению, используя

def Ping(url):
     r =  requests.get(url) #http://192.168.1.10
     if r.status_code == 200:
            return True
     return False

Я пытался использовать подпрограмму ОС для проверки связи с модулем подпроцесса, но при этом получал нестабильные результаты. Все это кажется хрупким и хакерским. Я полагаю, это то, что я получаю за использование стороннего веб-приложения для устройств. Трудно рассмотреть все крайние случаи в конечном автомате, которые могут произойти

Есть ли лучший способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...