kylemcdonald / FreeWifi

How to get free wifi.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

wifi-users.py : Error getting wireless interface

sheepdestroyer opened this issue · comments

[sheepdestroyer@sheepivyra FreeWifi]$ sudo python wifi-users.py 
Error getting wireless interface.
Traceback (most recent call last):
  File "wifi-users.py", line 161, in <module>
    main(argv)
  File "wifi-users.py", line 58, in main
    wireless = Wireless()
  File "/usr/lib/python2.7/site-packages/wireless/Wireless.py", line 23, in __init__
    self._driver_name = self._detectDriver()
  File "/usr/lib/python2.7/site-packages/wireless/Wireless.py", line 50, in _detectDriver
    compare = self.vercmp(ver, "0.9.9.0")
  File "/usr/lib/python2.7/site-packages/wireless/Wireless.py", line 71, in vercmp
    return cmp(normalize(actual), normalize(test))
  File "/usr/lib/python2.7/site-packages/wireless/Wireless.py", line 70, in normalize
    return [int(x) for x in re.sub(r'(\.0+)*$', '', v).split(".")]
ValueError: invalid literal for int() with base 10: '4-3'
[sheepdestroyer@sheepivyra FreeWifi]$ 

Hi,

I'm getting similar errors, too (on macOS 10.12.2 and Python 2.7.12).

FreeWifi $ python wifi-users.py
Available interfaces: en1
Interface: en1
Error getting wireless interface.
Traceback (most recent call last):
  File "wifi-users.py", line 161, in <module>
    main(argv)
  File "wifi-users.py", line 68, in main
    ssid = wireless.current()
  File "/usr/local/lib/python2.7/site-packages/wireless/Wireless.py", line 79, in current
    return self._driver.current()
  File "/usr/local/lib/python2.7/site-packages/wireless/Wireless.py", line 427, in current
    self._interface))
  File "/usr/local/lib/python2.7/site-packages/wireless/Wireless.py", line 11, in cmd
    stdout=subprocess.PIPE, stderr=subprocess.STDOUT
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 23: ordinal not in range(128)
commented

Similar, but not the same.

@spiritphyz I would theorize that there are nearby wifi networks whose names have non-ascii characters.

It looks like this is a bug in Wireless and it would be great if you could submit an issue in that repo.

I think @tbodt is correct, and that this is a bug with non-ASCII characters being evaluated by this regex https://github.com/joshvillbrandt/wireless/blob/master/wireless/Wireless.py#L70

If you could paste the name of your current wireless network here, it would probably help in debugging the issue. You can probably get the wireless name from Network Settings, but if not you can also use this in the Terminal:

$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I \
  | grep " SSID"
           SSID: FREE_WIFI

i'm in france so there's likely some accentuated network nearby, i'll try to do your check later

edit :
my bad, that does not apply to me as it fails at getting the wireless interface

@tbodt @kylemcdonald Awesome! You guys are totally right -- my home WiFi network has non-ASCII Emoji in the network name:

$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I \
>   | grep " SSID"
           SSID: 🐳 Big Whale Network 

I don't have any problems with Unicode in the network name because all our devices are iOS or Mac, and the network name is displayed correctly during discovery.

Is it easy to change the regex to include Unicode?

commented

It's not a problem with the regex, it's a problem with the bare decode() at the top of the file. It should have 'utf-8' in it (or something).

commented

@sheepdestroyer your problem is also a problem with Wireless, but a different one. the version of nmcli has a hyphen in it which breaks the version detection.

I think I have the simple problem with this following error
root@WalkerPi:/home/t/FreeWifi# python wifi-users.py -i wlx90f6520940c1
Traceback (most recent call last):
File "wifi-users.py", line 10, in <module>
from netaddr import EUI, mac_unix_expanded
ImportError: No module named netaddr
root@WalkerPi:/home/t/FreeWifi#
I don't know what means the EUI for? I have try the with tcpdump with the right USB...
and I'm running on Raspberry Pi Ubuntu Mate.
Should I modify the py file?