Por lo general, mientras nos conectamos con el wifi, tenemos que ingresar alguna contraseña para acceder a la red, pero no podemos ver directamente la contraseña que ingresamos anteriormente, es decir, la contraseña de la red guardada. En este artículo, veremos cómo podemos obtener todos los nombres y contraseñas WiFi guardados usando Python, para hacer esto usaremos el módulo de subproceso de Python.
Wi-Fi es una tecnología de red inalámbrica que permite que dispositivos tales como computadoras (portátiles y de escritorio), dispositivos móviles (teléfonos inteligentes y dispositivos portátiles) y otros equipos (impresoras y cámaras de video) interactúen con Internet.
el subprocesoEl módulo presente en Python (tanto 2.x como 3.x) se usa para ejecutar nuevas aplicaciones o programas a través del código de Python mediante la creación de nuevos procesos. También ayuda a obtener las tuberías de entrada/salida/error, así como los códigos de salida de varios comandos.
Pasos para la implementación:
1. Importe el módulo de subproceso
2. Obtenga los metadatos de la wlan (wifi) con la ayuda del método check_output
3. Decodifique los metadatos y divídalos de acuerdo con la línea
4. De los metadatos decodificados obtenga los nombres de las redes wlan guardadas
5. Ahora, para cada nombre, obtenga nuevamente los metadatos de wlan de acuerdo con el nombre
6. Inicie el bloque try and catch y dentro del bloque try, decodifique y divida estos metadatos y obtenga la contraseña del nombre wifi dado
7. Imprima la contraseña y el nombre wifi e imprima en blanco si no hay contraseña
8. En el bloque excepto si ocurrió un error de proceso ocurrió un error de codificación de impresión
A continuación se muestra la implementación.
Python3
# importing subprocess import subprocess # getting meta data meta_data = subprocess.check_output(['netsh', 'wlan', 'show', 'profiles']) # decoding meta data data = meta_data.decode('utf-8', errors ="backslashreplace") # splitting data by line by line data = data.split('\n') # creating a list of profiles profiles = [] # traverse the data for i in data: # find "All User Profile" in each item if "All User Profile" in i : # if found # split the item i = i.split(":") # item at index 1 will be the wifi name i = i[1] # formatting the name # first and last character is use less i = i[1:-1] # appending the wifi name in the list profiles.append(i) # printing heading print("{:<30}| {:<}".format("Wi-Fi Name", "Password")) print("----------------------------------------------") # traversing the profiles for i in profiles: # try catch block begins # try block try: # getting meta data with password using wifi name results = subprocess.check_output(['netsh', 'wlan', 'show', 'profile', i, 'key = clear']) # decoding and splitting data line by line results = results.decode('utf-8', errors ="backslashreplace") results = results.split('\n') # finding password from the result list results = [b.split(":")[1][1:-1] for b in results if "Key Content" in b] # if there is password it will print the pass word try: print("{:<30}| {:<}".format(i, results[0])) # else it will print blank in front of pass word except IndexError: print("{:<30}| {:<}".format(i, "")) # called when this process get failed except subprocess.CalledProcessError: print("Encoding Error Occurred")
Producción :
Wi-Fi Name | Password ----------------------------------------------- Engineer | ayush123 honor | 1234567890 Engineer_5GHz | ayush123 Redmi | 12345677 Ayush | 123123123 BiGX-cmtqaGFtYjc | rakshit123 UERJTTBV8e0GUmVkbWkg 2 | 987654321 DESKTOP-F32H70N 5009 | SUSHANT@123 UERJTTBV8e0GUmVkbWkg | Bunns | heyhotspot Hogwarts | sushant@123 Cgc wireless | database1234 Moto G (5) Plus 8691 | rakshit123 AndroidAP | udrw7859 AndroidAPab7e | 123000123 roshan | 12345678 Svj? | salonivij Hey | heythere AndroidAP202 | bhuvanbroo JARVIS | abhishek09 B6NO-wq5hamF0IGt1bWHCrg | 12345678 CDAC |
Publicación traducida automáticamente
Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA