python linux networking wifi raspberry-pi

conecta wifi con terminal python o linux



networking raspberry-pi (2)

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

Para Python, estoy usando esta biblioteca https://wifi.readthedocs.org/en/latest/scanning.html escanear y guardar el esquema funciona bien, pero cada vez que escribo esta línea de código scheme.activate () y no recibo salida

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

Intenté también conectarme a redes WiFi usando la CLI. Busqué en Google y descubrí que debería hacer estas tres afirmaciones: iwlist wlan0 scan // para escanear las redes wireess 2- iwconfig wlan0 essid "Mywirelessnetwork" // para asociar con la red 3- dhclient wla0 // Para obtener un UP

Cada vez que hago el paso 2 y luego reviso iwconfig wlan0, ¡descubro que la interfaz inalámbrica no está asociada!

Algunas ideas ???

Lo que trato de hacer es tener una biblioteca de una forma de conectarme a wifi, preferiblemente a través de una función python o una biblioteca, y probar en PI de frambuesa porque estoy creando algunas aplicaciones que requieren conexión de red.


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

Y si quieres usar comandos 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.stdint.write(''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 súper usuario en Linux, pero no hay ningún problema en Windows.

Editar: Puedes encontrar algo sobre python aquí: http://pythonwifi.wikispot.org/Front_Page


Aquí hay un enfoque general que utiliza el módulo python os y el comando iwlist Linux para buscar a través de 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 específico (que puede ser un patrón de expresiones regulares o una parte única del nombre del servidor) y 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()