FreeWifi icon indicating copy to clipboard operation
FreeWifi copied to clipboard

wifi-users.py : Error getting wireless interface

Open sheepdestroyer opened this issue 8 years ago • 9 comments
trafficstars

[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]$ 

sheepdestroyer avatar Feb 07 '17 22:02 sheepdestroyer

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)

spiritphyz avatar Feb 09 '17 19:02 spiritphyz

Similar, but not the same.

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

tbodt avatar Feb 10 '17 17:02 tbodt

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

kylemcdonald avatar Feb 10 '17 20:02 kylemcdonald

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

sheepdestroyer avatar Feb 10 '17 20:02 sheepdestroyer

@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?

spiritphyz avatar Feb 12 '17 21:02 spiritphyz

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).

tbodt avatar Feb 12 '17 21:02 tbodt

@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.

tbodt avatar Feb 12 '17 22:02 tbodt

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?

constantinedev avatar May 04 '18 16:05 constantinedev