Как отключить WIFI в Python 3? (Windows) - PullRequest
0 голосов
/ 06 октября 2019

Я делаю скрипт на python, который должен отключать WIFI в Windows. Я пробовал поиск в Google, но все, что я мог найти, это отключиться от определенного WIFI. И это не то, чего я хочу, потому что если вы работаете на другом компьютере и запускаете тот же сценарий, он, вероятно, не выключит ваш WIFI, потому что у вас нет того же WIFI, что и у человека, который написал сценарий.

Так кто-нибудь знает, как я могу сделать скрипт на python, который будет отключать \ выключать WIFI на компьютере и работать с каждым WIFI без изменения скрипта?

Ответы [ 2 ]

0 голосов
/ 06 октября 2019

Нет способа надежно сделать это для любого компьютера и любого Wi-Fi. Каждый компьютер имеет свой адаптер Wi-Fi, который может быть по-разному размещен в сетевом интерфейсе win32.

Что вы можете сделать, это выполнить системные команды для командной строки, запросить и найти адаптер Wi-Fi текущей системы. Например, чтобы найти адаптер Wi-Fi, вы можете использовать следующее

 wmic nic get name, index 

. Появится список адаптеров. Если один из них в конце говорит что-то вроде WiFi Adapter, вы можете использовать индекс этой записи с помощью следующей команды:

wmic path win32_networkadapter where index=7 call disable

Это отключит Wi-Fi. Имейте в виду, что это может работать или не работать на разных версиях Windows. Это также может не работать, если пользователь Windows не использует командную строку при запуске сценария Python.

Чтобы вызвать эти команды из Python, используйте модуль subprocess . Вы можете запускать команды там с помощью методов run() или check_output():

>>> subprocess.run(["dir", "C:\users"], capture_output=True)
0 голосов
/ 06 октября 2019

Часто язык программирования высокого уровня не имеет доступа к системным настройкам. Следовательно, вы можете импортировать модуль os и отправить некоторый сигнал, чтобы уведомить операционную систему об отключении Wi-Fi.

os.system()

, которую вы используете Window. Вы можете заполнить функцию этим

netsh interface set interface 'Wifi' disabled

. Для тех, кто использует OS X, вы можете заполнить функцию этим

sudo networksetup -setnetworkserviceenabled Wi-Fi off
...