Pi and More

05.02.12

A Simple WiFi-Scanner for Linux

The current issue of the c't magazine features articles about improving the wifi signal at home. They cover a Windows tool called inSSIDer, which shows the wifi signal levels on the channels 0-13.

However, there's no such tool for linux. I came up with a simple solution in python, which parses the output of iwlist scan. This file is tested on Ubuntu 11.04, this one runs on Ubuntu 11.10. Both scripts can be executed like this: watch 'sudo iwlist scan | python wifi-graph-*.py' This is a quick hack, but it works great for me. Feel free to improve the scripts!

Update: Fixed the link to the second file.

Update 2: I've created a git repository. Please file bugs there. If you have different solutions, a graphical interface, bugfixes or whatever, feel free to provide patches!
Kommentare (neuste zuerst)
  • Daniel schreibt am 19.02.12 um 16:29 Uhr: Habe den Link zum zweiten Skript korrigiert, das sollte für 11.10 laufen!
  • Rolf schreibt am 18.02.12 um 20:25 Uhr: Mit dem iwlist hat man das Problem, das maximal 64 WLANs aufgelistet werden können. Ich hatte deshalb mal den Autor angeschrieben und er antwortete das die Limitierung in der Kernel-Schnittstelle liegt. Da helfen nur Alternativen wie Kismet and Aircrack-ng. Die braucht man auch bei versteckten SSIDs. Unter https://sslsites.de/www.true-random.com/homepage/projects/wifi/index.html ist einiges dazu geschrieben, mit einem Skript das automatisch zum nächsten offenen WLAN verbindet.
  • Rainer_Chaudhuri schreibt am 17.02.12 um 12:14 Uhr: Flo, danke für den Tipp mit dem Skript. Hat mir sehr geholfen.
  • Klaus schreibt am 13.02.12 um 21:05 Uhr: Funzt bei mir nicht. Ubuntu 11.10 64 bit Intel PRO/Wireless 4965 AG or AGN ------------------- Every 2,0s: sudo iwlist scan | python wifi-graph-*.py Mon Feb 13 21:04:37 2012 lo Interface doesn't support scanning. eth0 Interface doesn't support scanning. Traceback (most recent call last): File "wifi-graph-ubuntu-11.04.py", line 11, in <module> signal = int(line.split(':')[2].split(' ')[0]) IndexError: list index out of range
  • Rainer2 schreibt am 12.02.12 um 18:42 Uhr: Das ubuntu-11.10-Skript läuft natürlich auch unter Mint 12. Ebenso unter Sabayon 64-Bit Xfce. Weitermachen!
  • RainerS schreibt am 12.02.12 um 18:40 Uhr: Moin, das neuere Script läuft bei mir unter Ubuntu und auch unter Debian Linux ! Danke dafür ! Aber was spricht eigentlich dagegen, das Paket "wifi-radar" zu benutzen, das es sowohl bei Ubuntu, als auch bei Debian gibt ? Gruß, Rainer
  • JensE schreibt am 12.02.12 um 15:03 Uhr: Moin, ich habe deine eMail in der c't gelesen. Interessant, weil ich mir mal -- um Qt4 ein wenig zu lernen -- ein Qt4 Progrämmchen gebastelt, was das gleiche mit GUI macht. Also 'iwlist scan' genommen und die Ausgabe auf stdout geparst. Falls Du interesse hat, kann ich dir den Sourcecode geben. Ich wollte eigentlich immer mal die 'iwlist scan' routine in das Programm einfügen, aber da es mit dem 'iwlist scan' geklappt hatte und dessen Sourcecode sehr umfangreich ist, habe ich das nicht mehr in Angriff genommen. Bis denn JensE
  • Flo schreibt am 12.02.12 um 10:22 Uhr: Jörg, Du musst nur die Ubuntuversion im Link austauschen. Daniel hat zweimal 11.04 verlinkt, aber das 11.10-Skript ist ebenfalls online → http://www.danielfett.de/files/wifi-graph-ubuntu-11.10.py
  • Jörg schreibt am 11.02.12 um 23:55 Uhr: Hallo Daniel, die beiden Scripts, die du zum Download anbietest, sind namentlich (wifi-graph-ubuntu-11.04.py) und inhaltlich identisch. Ich bin an deiner Version für Ubuntu 11.10 interessiert. Gruß, Jörg
  • Sascha schreibt am 11.02.12 um 10:58 Uhr: Hi Daniel! Habe gerade deinen Leserbrief in der ct gelesen. Ich wollte sowas auch immer mal machen und schau mir dein Programm mal an. Vielleicht ist es dann einfacher, auf einer bestehenden Basis was zu verbessern. Ich lasse dich wissen, falls ich irgendwelche Verbesserungen vorgenommen habe. Schönen Tag noch Sascha
Kommentar schreiben
  • Bugs in AGTL bitte hier melden.
    Please report any bugs in AGTL here.
  • Wer eine Antwort erwartet, sollte eine echte E-Mail-Adresse angeben.
    If you expect a reply from me, please provide a working e-mail address.
  • Ich kann keine individuelle Problemlösung zu Websicherheit oder regulären Ausdrücken geben!
Name:
Website: http:// optional
E-Mail: wird nicht veröffentlich
Spam-Check: 8 pl us 10 ist gleich