Erro Wireless Python

Olá. Eu recentemente encontrei este módulo, eu achei bem interessante porque permite se conectar a uma rede wireless com poucas linhas, então eu fiz um script para testar:

#!/usr/bin/python 
from wireless import Wireless 
 
class Main: 
    if __name__ == "__main__": 
         print("iniciou") 
         wireless = Wireless() 
         wireless.connect(ssid='wifi', password='qwerty') 
         print("terminou")

E quando eu o executo, recebo este retorno:

iniciou
Traceback (most recent call last):
  File "TestConnect.py", line 4, in <module>
    class Main:
  File "TestConnect.py", line 7, in Main
    wireless = Wireless()
  File "/usr/local/lib/python2.7/dist-packages/wireless/Wireless.py", line 23, in __init__
    self._driver_name = self._detectDriver()
  File "/usr/local/lib/python2.7/dist-packages/wireless/Wireless.py", line 47, in _detectDriver
    response = cmd('nmcli --version')
  File "/usr/local/lib/python2.7/dist-packages/wireless/Wireless.py", line 11, in cmd
    stdout=subprocess.PIPE, stderr=subprocess.STDOUT
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 22: ordinal not in range(128)

Realmente o nome e a senha estão incorretas, porém eu já testei com os dados corretos na minha rede e deu no mesmo erro. Alguém sabe me dizer o que eu fiz de errado?

Amigo,
UnicodeDecodeError, trata de erro de codificação de caracter, pelo trace do erro, o problema parece estar no quando você cria o objeto “wireless = Wireless()”, pode ser que o resultado do comando “nmcli --version” esteja retornando algum caracter não tratavel.

Da uma olhada nesse link “https://wiki.python.org/moin/UnicodeDecodeError

1 curtida
root@meukali:~# nmcli --version
ferramenta nmcli, versão 1.2.4

Tem ideia do que eu posso fazer para evitar isso?

Meio óbvio a solução né :joy:, mas só agora que eu percebi. Eu mudei o idioma do sistema operacional e o erro sumiu, porém agora o retorno no console é esse:

iniciou
Traceback (most recent call last):
  File "TestConnect.py", line 4, in <module>
    class Main:
  File "TestConnect.py", line 7, in Main
    wireless = Wireless()
  File "/usr/local/lib/python2.7/dist-packages/wireless/Wireless.py", line 41, in __init__
    raise Exception('Unable to auto-detect the network interface.')
Exception: Unable to auto-detect the network interface.

Obs: Não sei se isso significa algo, mas eu estou executando esse script em uma máquina virtual.

Voltando para o idioma em portugues, coloca isso no inicio do scpript “# -- coding: latin-1 --”, depois do “#!/usr/bin/python”

Quanto ao "Unable to auto-detect the network interface."
Qual o resultado do comando ifconfig?

Provavelmente vc não tem uma rede wireless configurada.

1 curtida
root@meukali:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.103  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a00:27ff:fed0:d977  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:d0:d9:77  txqueuelen 1000  (Ethernet)
        RX packets 3423  bytes 4210080 (4.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2727  bytes 303826 (296.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 18  bytes 1058 (1.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 18  bytes 1058 (1.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Se a maquina (mesmo sendo virtual) que você está rodando o python não ter dispositivo wireless configurado, creio que seu código não vai funcionar…

Pesquise como configurar a rede wifi para a distro que está rodando python e depois de configurado tente rodar seu código novamente…

OBS: melhor desabilitar a conexão cabeada, para evitar conflitos de rede…

Eu estou com problemas, por mais que eu coloque para utilizar o adaptador Wireless, fica sempre no cabo, mas como esse não é o assunto do tópico, eu vou tentar resolver o problema. Assim que eu resolver eu testo o script e volto aqui para dizer se funcionou.

Em ambientes virtualizados é dificil configurar mesmo, você está usando virtualbox?

Veja se ajuda

Ou então tenta arrumar algum notebook pra testar…

1 curtida

Sim, eu estou utilizando o VirtualBox, porém mesmo estando tudo correto fica o simbolo do cabo conectado.

E essa opção de “Cabo conectado” aí? :joy:

Já desligou pra testar?

Sim, mas daí não funciona a internet.

Vocẽ precisa configurar a rede na máquina hóspede informando o ssid e tal, qual distro está usando, ubuntu?

E além do mais mesmo no sistema hóspede você consegue desligar o cabo de rede…

Kali Linux.[quote=“LostSoldier, post:13, topic:343657”]
Vocẽ precisa configurar a rede na máquina hóspede informando o ssid e tal
[/quote]
Cara, eu sei muito pouco sobre redes, só o básico mesmo, eu tô bem perdido kkkk.

A lógica é simples, no virtualbox a configuração que você fez foi de apenas habilitar a placa wireless, a configuração da rede você precisa fazer pelo sistema hóspede, ou seja pelo kali…

Mantenha o cabo desconectado

Em alguns casos você precisará instalar drivers adicionais no sistema hóspede…

Guest Additions

Cara não funcionou.

Se eu disser que não instalei os adicionais para convidado conta? Apareceu uma mensagem de erro na hora de instalar, então eu não instalei.

Voltamos à questão do locale, qual idioma você instalou o kali no virtualbox, lendo seus posts você tinha modificado, creio que precisa voltar o idioma que estava na instalação…

Não, esse erro ocorria antes também.