conectar wifi con python o linux terminal

Estoy tratando de conectarme a wifi a través de Python y Linux, pero en ambos casos no funciona conmigo.

Para Python, estoy utilizando esta biblioteca https://wifi.readthedocs.org/en/latest/scanning.html. La exploración y el guardado del esquema funciona bien, pero cada vez que escribo esta línea de código scheme.activate () y no obtengo salida

¿Alguna idea de lo que está mal con la biblioteca y si la ha usado antes o no?

También intenté conectarme a redes WiFi utilizando la CLI. Busqué en Google y encontré que debería hacer estas tres afirmaciones: 1. iwlist wlan0 scan // para escanear las redes inalámbricas 2- iwconfig wlan0 essid “Mywirelessnetwork” // para asociarme con la red 3- dhclient wla0 // Para obtener un UP

Cada vez que hago el paso 2 y luego compruebo iwconfig wlan0, encuentro que la interfaz inalámbrica no está asociada.

Algunas ideas ???

Lo que estoy tratando de hacer es tener una biblioteca de una manera de conectarse a la wifi, preferiblemente a través de una función python o una biblioteca y probada en la raspberry PI porque estoy creando algunas aplicaciones que requieren conexión a la red.

Este es un enfoque general que utiliza el módulo Python iwlist comando iwlist Linux para buscar en la lista de dispositivos wifi y el comando nmcli para conectarse al dispositivo deseado.

En este código, la función de ejecución encuentra el SSID de los dispositivos que coinciden con su nombre especificado (que puede ser un patrón de expresiones regulares o una parte única del nombre del servidor) luego se conecta a todos los dispositivos que coinciden con sus criterios esperados, llamando a la connection función.

 """ Search for a specific wifi ssid and connect to it. written by kasramvd. """ import os class Finder: def __init__(self, *args, **kwargs): self.server_name = kwargs['server_name'] self.password = kwargs['password'] self.interface_name = kwargs['interface'] self.main_dict = {} def run(self): command = """sudo iwlist wlp2s0 scan | grep -ioE 'ssid:"(.*{}.*)'""" result = os.popen(command.format(self.server_name)) result = list(result) if "Device or resource busy" in result: return None else: ssid_list = [item.lstrip('SSID:').strip('"\n') for item in result] print("Successfully get ssids {}".format(str(ssid_list))) for name in ssid_list: try: result = self.connection(name) except Exception as exp: print("Couldn't connect to name : {}. {}".format(name, exp)) else: if result: print("Successfully connected to {}".format(name)) def connection(self, name): try: os.system("nmcli d wifi connect {} password {} iface {}".format(name, self.password, self.interface_name)) except: raise else: return True if __name__ == "__main__": # Server_name is a case insensitive string, and/or regex pattern which demonstrates # the name of targeted WIFI device or a unique part of it. server_name = "example_name" password = "your_password" interface_name = "your_interface_name" # i. e wlp2s0 F = Finder(server_name=server_name, password=password, interface=interface_name) F.run() 

Al principio, intente ver estos enlaces: http://packages.ubuntu.com/raring/python-wicd https://wifi.readthedocs.org/en/latest/

Y si quieres usar los comandos de bash a través de python, prueba este código:

 from subprocess import Popen, STDOUT, PIPE from time import sleep handle = Popen('netsh wlan connect wifi_name', stdout=PIPE, stdin=PIPE, shell=True, stderr=STDOUT) sleep(10) handle.stdin.write(b'wifi_password\n') while handle.poll() == None: print handle.stdout.readline().strip() # print the result 

Pero asegúrese de que se está ejecutando como un superusuario en Linux, pero no hay ningún problema en Windows.