Erro Wireless Python

30 respostas
python
Thallysson

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?

30 Respostas

Borgessouza

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

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

Tem ideia do que eu posso fazer para evitar isso?

Thallysson

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.

Borgessouza

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.

Thallysson
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
L

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…

Thallysson

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.

L

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

Veja se ajuda

Ou então tenta arrumar algum notebook pra testar…

Thallysson

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

L

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

Já desligou pra testar?

Thallysson

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

L

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…

Thallysson

Kali Linux.

“LostSoldier:

Vocẽ precisa configurar a rede na máquina hóspede informando o ssid e tal

Cara, eu sei muito pouco sobre redes, só o básico mesmo, eu tô bem perdido kkkk.

L

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

L

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

Guest Additions

Thallysson

Cara não funcionou.

Thallysson

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.

L

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…

Thallysson

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

L

Bate esse erro no google pra ver o que ele responde…

Ou então tenta setar o locale

Geralmente distros linux costumam ser UTF-8 por padrão, talvez o kali não tenha definido na instalação…

Thallysson

Eu mudei de acordo com o link, mas apareceu a mesma mensagem. Mas que eu me lembre eu coloquei na hora de instalar tudo certinho, não entendo isso.

L

Cara já pensou trocar de distro, uma mais windows like, eu uso linux mint está bem estável, a configuração da rede você pode fazer pela interface gráfica mesmo de boa…

Thallysson

Não, eu não posso, pois utilizo algumas ferramentas do kali, e na realidade esse script foi feito para o Windows mas eu tô usando no Linux porque eu não encontrei nenhum comando equivalente ao “nmcli --version” no Windows.

L

Seria melhor nesse caso, voltar o script para o windows e tentar resolver o UnicodeError…

Você tentou usar a dica do @Borgessouza sobre o coding: latin-1? Qual o resultado?

Aliás, para isso funcionar corretamente, seu arquivo precisa estar salvo como latin-1 ok? Você consegue ver isso usando um notepad++ da vida

Thallysson

Se encontrasse um comando equivalente eu voltaria, porque vai ser um tanto quanto complicado configurar essa máquina virtual, mas eu acho que no futuro eu vou precisar utilizar o Kali, não sei, o que tu acha melhor?

Eu adicionei no arquivo, não sei se funcionou porque eu não vi, e também não vi erro, já que meu sistema está em inglês, mas eu fiz tudo certinho, seria difícil dar errado.

L

Bom, pessoalmente eu prefiro linux, ainda mais no caso do python, por se integrar melhor com SO, fora o fato que sempre windows gera problemas com unicode :joy: (a mairoria das distros linux são utf8), mas opinião pessoal minha…

Agora o comando nmcli realmente é necessário? Pelo que percebi há uma confusão, pois o @Borgessouza deve ter imaginado que seu sistema fosse o linux por causa dessa linha:

#!/usr/bin/python

Onde no windows não serve pra nada :joy: mas é uma boa prática de programação em python…

por isso ele citou sobre ifconfig e tal e além do mais você não disse de inicio que usava windows :joy:

Eu imagino que esse nmcli seja algum tipo de diagnóstico da api Wireless…

Outra coisa, você ta usando virtualbox, nada te impede de subir outra vm com outra distro, copiar seus scripts pra la e tentar configurar o wifi de uma forma mais amigável… quando disse pra trocar seria nesse sentido, não precisa “matar” o kali :joy:

Thallysson

O módulo que eu estou tentando usar é assim, eu não sei mudar.

Realmente :joy:

“LostSoldier:

por isso ele citou sobre ifconfig e tal e além do mais você não disse de inicio que usava windows

Porque eu não estava e nem estou usando Windows, e sim usei.
“LostSoldier:

Outra coisa, você ta usando virtualbox, nada te impede de subir outra vm com outra distro, copiar seus scripts pra la e tentar configurar o wifi de uma forma mais amigável… quando disse pra trocar seria nesse sentido, não precisa “matar” o kali :joy:

Tem algo que me impede sim, a internet, é tipo uns 2 dias para baixar dependendo da distro. E sim, eu gostaria de usar o Kali.

L

Então não há muitas opções, terá de configurar o wifi na raça, e ver o erro do locale na vm… sinto muito mas eu não tenho mais dicas para mostrar… boa sorte ai

Thallysson

Eu não consegui resolver o erro de jeito nenhum. Provavelmente vai demorar mais ainda pra eu conseguir o Linux pra executar esse script. Talvez eu faça dual boot. Mas por hora tu consegue executar o script aí e me dizer se funcionou? Só pra resolver esse problema de uma vez.

Thallysson

Me lembrei desse script :joy:

Agora eu tô com Linux aqui. Alguém sabe me explicar esse erro?

ubuntu@ubuntu:/media/ubuntu/BACKUP$ sudo python ScriptTest.py
iniciou
Traceback (most recent call last):
  File "ScriptTest.py", line 4, in <module>
    class Main: 
  File "ScriptTest.py", line 7, in Main
    wireless = Wireless() 
  File "/usr/local/lib/python2.7/dist-packages/wireless-0.3.0-py2.7.egg/wireless/Wireless.py", line 37, in _init_
    raise Exception('Unable to auto-detect the network interface.')
Exception: Unable to auto-detect the network interface.

Obs: Eu botei a SSID de uma rede wifi de verdade aqui perto de casa.

Criado 20 de fevereiro de 2017
Ultima resposta 12 de ago. de 2017
Respostas 30
Participantes 3