Как узнать имя роутера к которому я подключен?

Смысл программы крайне прост: получить имя сети роутера (SSID) и пароль (WPA-PSK) (если это возможно. В противном случае бду запрашивать у пользователя) и сгенерировать это всё в qr-код. Но я не знаю как получить имя сети и пароль


Ответы (1 шт):

Автор решения: eri

Для Линукс

Чуток исправленная библиотека (на гитхабе есть ещё форки, основная не рабочая):

pip3 install git+https://github.com/alex-eri/python-networkmanager.git@master

и сам код:

import dbus.mainloop.glib
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
import NetworkManager

active_connections = NetworkManager.NetworkManager.ActiveConnections

wifi_connections = filter(lambda x: x.Type == '802-11-wireless', active_connections)

print('ssid', 'security', 'password')
for wifi in wifi_connections:
    settings = wifi.Connection.GetSettings()
    secret = wifi.Connection.GetSecrets('802-11-wireless-security')
    print(
        settings['802-11-wireless']['ssid'],
        settings['802-11-wireless-security']['key-mgmt'],
        secret.get('802-11-wireless-security')
    )

Или через gi

Мне кажется так перспективней

import gi
gi.require_version("NM", "1.0")
from gi.repository import NM
nm=NM.Client.new()

active_connections = nm.get_active_connections()
wifi_connections = filter(lambda x: x.props.type == '802-11-wireless', active_connections)

print('ssid', 'security', 'password')
for wifi in wifi_connections:
    connection = wifi.props.connection
    print(
        connection.get_setting_wireless().get_ssid().get_data().decode(),
        connection.get_setting_wireless_security().props.key_mgmt,
        connection.get_secrets('802-11-wireless-security', None)['802-11-wireless-security']['psk']
    )

Для Виндовс

Запускай программу netsh и смотри её вывод:

Получить список сетей

list_text = os.popen('NETSH WLAN SHOW PROFILE').read()

Получить пароль от сети

password_text = os.popen('NETSH WLAN SHOW PROFILE '+ name +' KEY=CLEAR').read()

Текст разберешь через сплит или регулярками.

→ Ссылка