From 7c365af66089d9ad51c43759b3ab817677f39d23 Mon Sep 17 00:00:00 2001 From: SiloDS Date: Fri, 30 Jul 2021 10:54:13 +0100 Subject: [PATCH] Working before re-write, no nord --- app/routes.py | 147 ++++++++++++++++----- config.py | 3 +- iwlist.txt | 285 ++++++++++++++++++++++++++++++++++++++++ test.py | 357 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 761 insertions(+), 31 deletions(-) create mode 100644 iwlist.txt create mode 100644 test.py diff --git a/app/routes.py b/app/routes.py index eb06c12..1a845d8 100644 --- a/app/routes.py +++ b/app/routes.py @@ -1,12 +1,13 @@ +import re import subprocess -from config import RPI, Debug, ClientInterface +from config import RPI, ClientInterface, Debug from flask import flash, redirect, render_template, url_for from flask_login import current_user, login_required, login_user, logout_user from app import app from app.forms import LoginForm, WPAForm -from app.models import User, Passwords +from app.models import Passwords, User CMD_SCAN = "sudo nmcli -t -f SSID,SIGNAL,IN-USE,SECURITY -e yes -m tab device wifi list ifname wlan1 --rescan yes" CMD_JOIN = "sudo nmcli device wifi connect *SSID* ifname wlan1" @@ -16,6 +17,48 @@ CMD_DISCONNECT = "sudo nmcli device disconnect wlan1" # Device 'wlxf81a6719febb' successfully activated with '11111-1111-11111-111111-11111111' +def parse_iwlist(iwlist_output, current): + data = [] + cell = [] + for line in iwlist_output.splitlines(): + if line.find(" Cell ") != -1 and cell != []: + data.append(cell) + cell = [] + elif line.find("Scan completed :") > 0: + pass + else: + cell.append(line) + + try: + del data[0][0] + except: + pass + + cells = [] + + for a in data: + cell = {} + for line in a: + line = line.strip() + if line.find("ESSID:") != -1: + if line.partition("ESSID:")[2].strip('"') != "": + cell["SSID"] = line.partition("ESSID:")[2].strip('"') + if cell["SSID"] == current: + cell["Connected"] = "Yes" + else: + cell["Connected"] = "" + if line.partition("Signal level=")[2].split("/")[0] != "" != -1: + cell["Signal"] = line.partition("Signal level=")[2].split("/")[0] + if line.find("Encryption key:") != -1: + if line.find(":on") != -1: + cell["WPA"] = "WPA2" + else: + cell["WPA"] = "None" + cells.append(cell) + + return cells + + def scan_networks(): scan = [] @@ -30,28 +73,29 @@ def scan_networks(): current = output.partition("ESSID:")[2].strip().strip('"') output = subprocess.run(["sudo", "iwlist", ClientInterface, "scan"], stdout=subprocess.PIPE).stdout.decode("utf-8") - a = 0 - scan = [] - for line in output.splitlines(): - if a == 0: - connected = " " - if line.partition("ESSID:")[2].strip('"') != "": - a = 1 - ssid = line.partition("ESSID:")[2].strip('"') - if ssid == current: - connected = "*" - if a == 1: - if line.find("Encryption key:off") != -1: - password = "" - a = 2 - elif line.find("Encryption key:on") != -1: - password = "WPA2" - a = 2 - if a == 2: - if line.partition("Signal level=")[2].split("/")[0] != "": - signal = line.partition("Signal level=")[2].split("/")[0] - a = 0 - scan.append(ssid + ":" + signal + ":" + connected + ":" + password) + scan = parse_iwlist(output, current) + # a = 0 + # scan = [] + # for line in output.splitlines(): + # if a == 0: + # connected = " " + # if line.partition("ESSID:")[2].strip('"') != "": + # a = 1 + # ssid = line.partition("ESSID:")[2].strip('"') + # if ssid == current: + # connected = "*" + # if a == 1: + # if line.find("Encryption key:off") != -1: + # password = "" + # a = 2 + # elif line.find("Encryption key:on") != -1: + # password = "WPA2" + # a = 2 + # if a == 2: + # if line.partition("Signal level=")[2].split("/")[0] != "": + # signal = line.partition("Signal level=")[2].split("/")[0] + # a = 0 + # scan.append(ssid + ":" + signal + ":" + connected + ":" + password) return scan @@ -64,13 +108,18 @@ def index(): if not Debug: scan = scan_networks() + # for network in scan: + # item = [ + # network.split(":", maxsplit=1)[0], + # network.split(":")[1], + # "Yes" if network.split(":")[2] == "*" else "", + # "None" if network.split(":")[3].strip() == "" else "WPA2", + # ] + # results.append(item) + + item = [] for network in scan: - item = [ - network.split(":", maxsplit=1)[0], - network.split(":")[1], - "Yes" if network.split(":")[2] == "*" else "", - "None" if network.split(":")[3].strip() == "" else "WPA2", - ] + item = [network["SSID"], network["Signal"], network["Connected"], network["WPA"]] results.append(item) # table = Networks(results) @@ -134,6 +183,13 @@ network={{ """.format( ssid, form.password.data ) + + with open("/etc/network/interfaces", "r") as sources: + lines = sources.readlines() + with open("/etc/network/interfaces", "w") as sources: + for line in lines: + sources.write(re.sub(r"^iface wlan0 inet manual", "iface wlan0 inet dhcp", line)) + output = subprocess.run( ["sudo", "/usr/sbin/ifdown", ClientInterface], stdout=subprocess.PIPE, stderr=subprocess.PIPE ).stdout.decode("utf-8") @@ -192,6 +248,12 @@ network={{ ssid ) + with open("/etc/network/interfaces", "r") as sources: + lines = sources.readlines() + with open("/etc/network/interfaces", "w") as sources: + for line in lines: + sources.write(re.sub(r"^iface wlan0 inet manual", "iface wlan0 inet dhcp", line)) + output = subprocess.run( ["sudo", "/usr/sbin/ifdown", ClientInterface], stdout=subprocess.PIPE, stderr=subprocess.PIPE ).stdout.decode("utf-8") @@ -232,4 +294,29 @@ def disconnect(ssid): ["sudo", "/usr/sbin/ifdown", ClientInterface], stdout=subprocess.PIPE, stderr=subprocess.PIPE ).stdout.decode("utf-8") + wpafile = """country=GB # Your 2-digit country code +ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev +""" + with open("/etc/wpa_supplicant/wpa_supplicant.conf", "wt") as f: + f.write(wpafile) + + with open("/etc/network/interfaces", "r") as sources: + lines = sources.readlines() + with open("/etc/network/interfaces", "w") as sources: + for line in lines: + sources.write(re.sub(r"^iface wlan0 inet dhcp", "iface wlan0 inet manual", line)) + + try: + output = subprocess.run( + ["sudo", "/usr/bin/systemctl", "restart", "wpa_supplicant"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + timeout=20, + ).stdout.decode("utf-8") + output = subprocess.run( + ["sudo", "/usr/sbin/ifup", ClientInterface], stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=20 + ).stdout.decode("utf-8") + except: + return render_template("message.html", message="Failt to disconnect from {}".format(ssid)) + return render_template("message.html", message="Sucessfully disconnected from {}".format(ssid)) diff --git a/config.py b/config.py index dacb234..db1566a 100644 --- a/config.py +++ b/config.py @@ -4,7 +4,8 @@ basedir = os.path.abspath(os.path.dirname(__file__)) Debug = False RPI = True -ClientInterface = "wlan1" +ClientInterface = "wlan0" +# wlan1 access point class Config(object): SECRET_KEY = os.environ.get("SECRET_KEY") or "dfsads1!FASASF231(*&FADSs" diff --git a/iwlist.txt b/iwlist.txt new file mode 100644 index 0000000..be1b3a8 --- /dev/null +++ b/iwlist.txt @@ -0,0 +1,285 @@ +wlan0 Scan completed : + Cell 01 - Address: 94:37:F7:ED:E5:F5 + Channel:5 + Frequency:2.432 GHz (Channel 5) + Quality=70/70 Signal level=-38 dBm + Encryption key:on + ESSID:"Home" + Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s + 24 Mb/s; 36 Mb/s; 54 Mb/s + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 80ms ago + IE: Unknown: 0004486F6D65 + IE: Unknown: 010882840B162430486C + IE: Unknown: 030105 + IE: Unknown: 050400010000 + IE: Unknown: 23020E00 + IE: Unknown: 2A0104 + IE: Unknown: 32040C121860 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B0507005C0000 + IE: Unknown: 2D1AEE191BFFFF000000000000000000000000000000000000000000 + IE: Unknown: 3D1605081500000000000000000000000000000000000000 + IE: Unknown: 4A0E14000A002C01C800140005001900 + IE: Unknown: 7F080500080000000040 + IE: Unknown: DD0F00E0FC400000000000FD0480000000 + IE: Unknown: DD350050F204104A000110104400010210470010D96C7EFC2F8938F1EFBD6E5148BFA812103C0001031049000A00372A00012005020780 + IE: Unknown: DD090010180207008C0000 + IE: Unknown: DD180050F2020101840003A4000027A4000042435E0062322F00 + Cell 02 - Address: 20:B0:01:9C:02:F9 + Channel:2 + Frequency:2.417 GHz (Channel 2) + Quality=56/70 Signal level=-54 dBm + Encryption key:on + ESSID:"HOME2" + Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s + 24 Mb/s; 36 Mb/s; 54 Mb/s + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 80ms ago + IE: Unknown: 0005484F4D4532 + IE: Unknown: 010882848B962430486C + IE: Unknown: 030102 + IE: Unknown: 050400010000 + IE: Unknown: 2A0104 + IE: Unknown: 32040C121860 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B050100330000 + IE: Unknown: 46053000000000 + IE: Unknown: 2D1A2D0017FFFFFF0000000000000000000000000000000000000000 + IE: Unknown: 3D1602080400000000000000000000000000000000000000 + IE: Unknown: 4A0E14000A002C01C800140005001900 + IE: Unknown: 7F080500080000400040 + IE: Unknown: DD1D0050F204104A0001101044000102103C0001031049000600372A000120 + IE: Unknown: DD1E00904C0400BF0C1258820FEAFF0000EAFF0000C0050002000000C3020002 + IE: Unknown: DD090010180201101C0000 + IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00 + Cell 03 - Address: 1C:BF:CE:8A:B4:41 + Channel:7 + Frequency:2.442 GHz (Channel 7) + Quality=70/70 Signal level=-10 dBm + Encryption key:on + ESSID:"rpi" + Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s + 9 Mb/s; 12 Mb/s; 18 Mb/s + Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 80ms ago + IE: Unknown: 0003727069 + IE: Unknown: 010882848B960C121824 + IE: Unknown: 030107 + IE: Unknown: 050400010000 + IE: Unknown: 2A0104 + IE: Unknown: 32043048606C + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + Cell 04 - Address: 96:37:F7:ED:E5:F9 + Channel:5 + Frequency:2.432 GHz (Channel 5) + Quality=67/70 Signal level=-43 dBm + Encryption key:on + ESSID:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s + 24 Mb/s; 36 Mb/s; 54 Mb/s + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 80ms ago + IE: Unknown: 0018000000000000000000000000000000000000000000000000 + IE: Unknown: 010882840B162430486C + IE: Unknown: 030105 + IE: Unknown: 050400010000 + IE: Unknown: 23020E00 + IE: Unknown: 2A0104 + IE: Unknown: 32040C121860 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B0500003A0000 + IE: Unknown: 2D1AEE191BFFFF000000000000000000000000000000000000000000 + IE: Unknown: 3D1605081500000000000000000000000000000000000000 + IE: Unknown: 4A0E14000A002C01C800140005001900 + IE: Unknown: 7F080500080000000040 + IE: Unknown: DD090010180200000C0000 + IE: Unknown: DD180050F2020101840003A4000027A4000042435E0062322F00 + Cell 05 - Address: EC:8E:B5:B3:AE:CE + Channel:5 + Frequency:2.432 GHz (Channel 5) + Quality=50/70 Signal level=-60 dBm + Encryption key:on + ESSID:"DIRECT-CD-HP ENVY 4520 series" + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s + 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 80ms ago + IE: Unknown: 001D4449524543542D43442D485020454E5659203435323020736572696573 + IE: Unknown: 01088C129824B048606C + IE: Unknown: 030105 + IE: Unknown: 200100 + IE: Unknown: 23021100 + IE: Unknown: 2A0100 + IE: Unknown: 2F0100 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 2D1A20001AFF00000000000000000000000000000000000000000000 + IE: Unknown: 3D1605080000000000000000000000000000000000000000 + IE: Unknown: DD090010180200000C0000 + IE: Unknown: DD180050F202010188000364000027A4000041435E0061322F00 + IE: Unknown: DDC10050F204104A000110104400010210570001011041000100103B000103104700101C852A4DB8001F08ABCDEC8EB5B3AECD10210002485010230011454E565920343532302073657269657300102400053435323400104200105448363650334D3044393036363000001054000800030050F20400051011001D4449524543542D43442D485020454E56592034353230207365726965731008000200001049000600372A00012010490017000137100600101C852A4DB8001F08ABCDEC8EB5B3AECD + IE: Unknown: DD5F080009000400000007010201000311454E5659203435323020736572696573000405343532340005105448363650334D30443930363630000006101C852A4DB8001F08ABCDEC8EB5B3AECD0704C0A800A3080200D4090200080A0400000001 + Cell 06 - Address: D4:DA:CD:27:B5:92 + Channel:36 + Frequency:5.18 GHz (Channel 36) + Quality=50/70 Signal level=-60 dBm + Encryption key:on + ESSID:"SKY2E6AD" + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s + 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 80ms ago + IE: Unknown: 0008534B593245364144 + IE: Unknown: 01088C129824B048606C + IE: Unknown: 07344742202401172801172C01173001173401173801173C011740011764011E68011E6C011E70011E74011E84011E88011E8C011E00 + IE: Unknown: 200100 + IE: Unknown: 23021000 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B050000130000 + IE: Unknown: 420100 + IE: Unknown: 46057208000000 + IE: Unknown: 2D1AEF0117FFFFFFFF00000000000000000000000000000000000000 + IE: Unknown: 3D1624050000000000000000000000000000000000000000 + IE: Unknown: 7F080400080000000040 + IE: Unknown: BF0CB269830FAAFF0000AAFF0000 + IE: Unknown: C005012A000000 + IE: Unknown: C30402020202 + IE: Unknown: DDAD0050F204104A0001101044000102103B00010310470010B3B9D65E5B53F032D888BB2D851A5CBA10210003536B7910230005454D31353010240007312E302E302E301042000E41543133353132303330303030311054000800060050F20400011011000E536B792051204D696E6920626F7810080002200C103C0001021049000600372A00012010580022007FC510001868FFE221A0ABBBB2A9C1BB3C760026E3303030303030303130000101 + IE: Unknown: DD090010180200001C0000 + IE: Unknown: DD180050F2020101840003A4000027A4000042435E0062322F00 + Cell 07 - Address: 94:37:F7:ED:E5:FA + Channel:36 + Frequency:5.18 GHz (Channel 36) + Quality=62/70 Signal level=-48 dBm + Encryption key:on + ESSID:"Home_5GHz" + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s + 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 80ms ago + IE: Unknown: 0009486F6D655F3547487A + IE: Unknown: 01088C129824B048606C + IE: Unknown: 200100 + IE: Unknown: 23020F00 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B050700210000 + IE: Unknown: 2D1AEF0117FFFFFFFF00000000000000000000000000000000000000 + IE: Unknown: 3D1624051600000000000000000000000000000000000000 + IE: Unknown: 7F080400080000000040 + IE: Unknown: BF0CB5698B0FAAFF0000AAFF0020 + IE: Unknown: C005012A000000 + IE: Unknown: C30402202020 + IE: Unknown: C70132 + IE: Unknown: FF24230900001200100C2002C06F5B8318000C00AAFFAAFFAAFFAAFF1B1CC7711CC7711CC771 + IE: Unknown: FF072404000025FCFF + IE: Unknown: FF022700 + IE: Unknown: FF0E260400A4FF20A4FF4043FF6032FF + IE: Unknown: DD0F00E0FC8000000001009437F7EDE5FA + IE: Unknown: DD1400E0FC400000000000FB069437F7EDE5FAF90101 + IE: Unknown: DD7E0050F204104A0001101044000102103B00010310470010D96C7EFC2F8938F1EFBD6E5148BFA81210210006487561776569102300064875617765691024000631323334353610420004313233341054000800060050F2040001101100084875617765694150100800020100103C0001031049000A00372A00012005020780 + IE: Unknown: DD0500904C0417 + IE: Unknown: DD090010180207001C0000 + IE: Unknown: DD180050F2020101840003A4000027A4000042435E0062322F00 + Cell 08 - Address: 98:1E:19:E5:01:39 + Channel:36 + Frequency:5.18 GHz (Channel 36) + Quality=33/70 Signal level=-77 dBm + Encryption key:on + ESSID:"BTHub6-F8K2" + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s + 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 80ms ago + IE: Unknown: 000B4254487562362D46384B32 + IE: Unknown: 01088C129824B048606C + IE: Unknown: 050402030000 + IE: Unknown: 073C4742202401172801172C01173001173401173801173C011740011764011E68011E6C011E70011E74011E78011E7C011E80011E84011E88011E8C011E + IE: Unknown: 200100 + IE: Unknown: 23021500 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B0501000C0000 + IE: Unknown: 42020000 + IE: Unknown: 2D1AEF0117FFFFFFFF00000000000000000000000000000000000000 + IE: Unknown: 3D1624050000000000000000000000000000000000000000 + IE: Unknown: 7F080400080000000040 + IE: Unknown: BF0CB269830FAAFF0000AAFF0000 + IE: Unknown: C005012A000000 + IE: Unknown: C30402020202 + IE: Unknown: DD310050F204104A0001101044000102104700102ADE320B3332E522A765BA8ACC7669F8103C0001031049000600372A000120 + IE: Unknown: DD0500904C0417 + IE: Unknown: DD090010180201001C0000 + IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00 + Cell 09 - Address: 22:B0:01:9C:02:01 + Channel:52 + Frequency:5.26 GHz (Channel 52) + Quality=53/70 Signal level=-57 dBm + Encryption key:on + ESSID:"HOME2" + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s + 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 80ms ago + IE: Unknown: 0005484F4D4532 + IE: Unknown: 01088C129824B048606C + IE: Unknown: 050400010000 + IE: Unknown: 073C4742202401172801172C01173001173401173801173C011740011764011E68011E6C011E70011E74011E78011E7C011E80011E84011E88011E8C011E + IE: Unknown: 200100 + IE: Unknown: 23021400 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B050200040000 + IE: Unknown: 420100 + IE: Unknown: 46053000000000 + IE: Unknown: 2D1A6F0017FFFFFFFF00000000000000000000000000000000000000 + IE: Unknown: 3D1634050400000000000000000000000000000000000000 + IE: Unknown: 4A0E14000A002C01C800140005001900 + IE: Unknown: 7F080500088000400040 + IE: Unknown: BF0C3268830FAAFF0000AAFF0000 + IE: Unknown: C005013A000000 + IE: Unknown: C30402020202 + IE: Unknown: DD1D0050F204104A0001101044000102103C0001031049000600372A000120 + IE: Unknown: DD0500904C0417 + IE: Unknown: DD090010180202009C0000 + IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00 + IE: Unknown: DD07506F9A16010100 + IE: Unknown: 6C027F00 + diff --git a/test.py b/test.py new file mode 100644 index 0000000..32bfaeb --- /dev/null +++ b/test.py @@ -0,0 +1,357 @@ +iwlist_text = """wlan0 Scan completed : + Cell 01 - Address: 20:B0:01:9C:02:F9 + Channel:2 + Frequency:2.417 GHz (Channel 2) + Quality=56/70 Signal level=-54 dBm + Encryption key:on + ESSID:"HOME2" + Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s + 24 Mb/s; 36 Mb/s; 54 Mb/s + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 50ms ago + IE: Unknown: 0005484F4D4532 + IE: Unknown: 010882848B962430486C + IE: Unknown: 030102 + IE: Unknown: 2A0100 + IE: Unknown: 32040C121860 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B050100180000 + IE: Unknown: 46053000000000 + IE: Unknown: 2D1A2D0017FFFFFF0000000000000000000000000000000000000000 + IE: Unknown: 3D1602080400000000000000000000000000000000000000 + IE: Unknown: 4A0E14000A002C01C800140005001900 + IE: Unknown: 7F080500080000400040 + IE: Unknown: DD830050F204104A0001101044000102103B00010310470010FE571D369D3F5F88A4940FAD3FA4FE2C10210008566F6461666F6E65102300075448473330303010240007566F78332E307610420009313932385341484D411054000800060050F204000110110008566F7820332E3076100800020784103C0001031049000600372A000120 + IE: Unknown: DD1E00904C0400BF0C1258820FEAFF0000EAFF0000C0050002000000C3020002 + IE: Unknown: DD090010180201101C0000 + IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00 + Cell 02 - Address: 1C:BF:CE:8A:B4:41 + Channel:7 + Frequency:2.442 GHz (Channel 7) + Quality=70/70 Signal level=-10 dBm + Encryption key:on + ESSID:"rpi" + Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s + 9 Mb/s; 12 Mb/s; 18 Mb/s + Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 50ms ago + IE: Unknown: 0003727069 + IE: Unknown: 010882848B960C121824 + IE: Unknown: 030107 + IE: Unknown: 050400010000 + IE: Unknown: 2A0104 + IE: Unknown: 32043048606C + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + Cell 03 - Address: 22:B0:01:9C:02:01 + Channel:52 + Frequency:5.26 GHz (Channel 52) + Quality=56/70 Signal level=-54 dBm + Encryption key:on + ESSID:"HOME2" + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s + 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 50ms ago + IE: Unknown: 0005484F4D4532 + IE: Unknown: 01088C129824B048606C + IE: Unknown: 050400010100 + IE: Unknown: 073C4742202401172801172C01173001173401173801173C011740011764011E68011E6C011E70011E74011E78011E7C011E80011E84011E88011E8C011E + IE: Unknown: 200100 + IE: Unknown: 23021400 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B050300020000 + IE: Unknown: 420100 + IE: Unknown: 46053000000000 + IE: Unknown: 2D1A6F0017FFFFFFFF00000000000000000000000000000000000000 + IE: Unknown: 3D1634050400000000000000000000000000000000000000 + IE: Unknown: 4A0E14000A002C01C800140005001900 + IE: Unknown: 7F080500088000400040 + IE: Unknown: BF0C3268830FAAFF0000AAFF0000 + IE: Unknown: C005013A000000 + IE: Unknown: C30402020202 + IE: Unknown: DD1D0050F204104A0001101044000102103C0001031049000600372A000120 + IE: Unknown: DD0500904C0417 + IE: Unknown: DD090010180203009C0000 + IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00 + IE: Unknown: DD07506F9A16010100 + IE: Unknown: 6C027F00 + Cell 04 - Address: 94:37:F7:ED:E5:F5 + Channel:7 + Frequency:2.442 GHz (Channel 7) + Quality=70/70 Signal level=-37 dBm + Encryption key:on + ESSID:"Home" + Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s + 24 Mb/s; 36 Mb/s; 54 Mb/s + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 50ms ago + IE: Unknown: 0004486F6D65 + IE: Unknown: 010882840B162430486C + IE: Unknown: 030107 + IE: Unknown: 23020E00 + IE: Unknown: 2A0104 + IE: Unknown: 32040C121860 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B050500190000 + IE: Unknown: 2D1AEE191BFFFF000000000000000000000000000000000000000000 + IE: Unknown: 3D1607081500000000000000000000000000000000000000 + IE: Unknown: 4A0E14000A002C01C800140005001900 + IE: Unknown: 7F080500080000000040 + IE: Unknown: DD7E0050F204104A0001101044000102103B00010310470010D96C7EFC2F8938F1EFBD6E5148BFA81210210006487561776569102300064875617765691024000631323334353610420004313233341054000800060050F2040001101100084875617765694150100800020100103C0001031049000A00372A00012005020780 + IE: Unknown: DD0F00E0FC400000000000FD0480000000 + IE: Unknown: DD0F00E0FC8000000001009437F7EDE5F5 + IE: Unknown: DD1400E0FC400000000000FB069437F7EDE5F5F90101 + IE: Unknown: DD090010180205008C0000 + IE: Unknown: DD180050F2020101840003A4000027A4000042435E0062322F00 + Cell 05 - Address: EC:8E:B5:B3:AE:CE + Channel:7 + Frequency:2.442 GHz (Channel 7) + Quality=44/70 Signal level=-66 dBm + Encryption key:on + ESSID:"DIRECT-CD-HP ENVY 4520 series" + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s + 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 50ms ago + IE: Unknown: 001D4449524543542D43442D485020454E5659203435323020736572696573 + IE: Unknown: 01088C129824B048606C + IE: Unknown: 030107 + IE: Unknown: 200100 + IE: Unknown: 23021100 + IE: Unknown: 2A0100 + IE: Unknown: 2F0100 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 2D1A20001AFF00000000000000000000000000000000000000000000 + IE: Unknown: 3D1607081100000000000000000000000000000000000000 + IE: Unknown: DD090010180200000C0000 + IE: Unknown: DD180050F202010188000364000027A4000041435E0061322F00 + IE: Unknown: DDC10050F204104A000110104400010210570001011041000100103B000103104700101C852A4DB8001F08ABCDEC8EB5B3AECD10210002485010230011454E565920343532302073657269657300102400053435323400104200105448363650334D3044393036363000001054000800030050F20400051011001D4449524543542D43442D485020454E56592034353230207365726965731008000200001049000600372A00012010490017000137100600101C852A4DB8001F08ABCDEC8EB5B3AECD + IE: Unknown: DD5F080009000400000007010201000311454E5659203435323020736572696573000405343532340005105448363650334D30443930363630000006101C852A4DB8001F08ABCDEC8EB5B3AECD0704C0A800A3080200D4090200080A0400000001 + Cell 06 - Address: D4:DA:CD:27:B5:92 + Channel:36 + Frequency:5.18 GHz (Channel 36) + Quality=50/70 Signal level=-60 dBm + Encryption key:on + ESSID:"SKY2E6AD" + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s + 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 50ms ago + IE: Unknown: 0008534B593245364144 + IE: Unknown: 01088C129824B048606C + IE: Unknown: 07344742202401172801172C01173001173401173801173C011740011764011E68011E6C011E70011E74011E84011E88011E8C011E00 + IE: Unknown: 200100 + IE: Unknown: 23021000 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B050000280000 + IE: Unknown: 420100 + IE: Unknown: 46057208000000 + IE: Unknown: 2D1AEF0117FFFFFFFF00000000000000000000000000000000000000 + IE: Unknown: 3D1624050000000000000000000000000000000000000000 + IE: Unknown: 7F080400080000000040 + IE: Unknown: BF0CB269830FAAFF0000AAFF0000 + IE: Unknown: C005012A000000 + IE: Unknown: C30402020202 + IE: Unknown: DDAD0050F204104A0001101044000102103B00010310470010B3B9D65E5B53F032D888BB2D851A5CBA10210003536B7910230005454D31353010240007312E302E302E301042000E41543133353132303330303030311054000800060050F20400011011000E536B792051204D696E6920626F7810080002200C103C0001021049000600372A00012010580022007FC51000186309446EBAB7CC70AE7616820D8EF0A5303030303030303130000101 + IE: Unknown: DD090010180200001C0000 + IE: Unknown: DD180050F2020101840003A4000027A4000042435E0062322F00 + Cell 07 - Address: 94:37:F7:ED:E5:FA + Channel:36 + Frequency:5.18 GHz (Channel 36) + Quality=64/70 Signal level=-46 dBm + Encryption key:on + ESSID:"Home_5GHz" + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s + 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 50ms ago + IE: Unknown: 0009486F6D655F3547487A + IE: Unknown: 01088C129824B048606C + IE: Unknown: 200100 + IE: Unknown: 23020F00 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B0505002F0000 + IE: Unknown: 2D1AEF0117FFFFFFFF00000000000000000000000000000000000000 + IE: Unknown: 3D1624050400000000000000000000000000000000000000 + IE: Unknown: 7F080400080000000040 + IE: Unknown: BF0CB5698B0FAAFF0000AAFF0020 + IE: Unknown: C005012A000000 + IE: Unknown: C30402202020 + IE: Unknown: C70132 + IE: Unknown: FF24230900001200100C2002C06F5B8318000C00AAFFAAFFAAFFAAFF1B1CC7711CC7711CC771 + IE: Unknown: FF072404000030FCFF + IE: Unknown: FF022700 + IE: Unknown: FF0E260400A4FF20A4FF4043FF6032FF + IE: Unknown: DD7E0050F204104A0001101044000102103B00010310470010D96C7EFC2F8938F1EFBD6E5148BFA81210210006487561776569102300064875617765691024000631323334353610420004313233341054000800060050F2040001101100084875617765694150100800020100103C0001031049000A00372A00012005020780 + IE: Unknown: DD0F00E0FC8000000001009437F7EDE5FA + IE: Unknown: DD1400E0FC400000000000FB069437F7EDE5FAF90101 + IE: Unknown: DD0500904C0417 + IE: Unknown: DD090010180205001C0000 + IE: Unknown: DD180050F2020101840003A4000027A4000042435E0062322F00 + Cell 08 - Address: 62:8E:29:1A:B2:3D + Channel:1 + Frequency:2.412 GHz (Channel 1) + Quality=34/70 Signal level=-76 dBm + Encryption key:off + ESSID:"BTWi-fi" + Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s + 24 Mb/s; 36 Mb/s; 54 Mb/s + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 50ms ago + IE: Unknown: 0007425457692D6669 + IE: Unknown: 010882848B962430486C + IE: Unknown: 030101 + IE: Unknown: 050401030000 + IE: Unknown: 0706474220010D14 + IE: Unknown: 2A0104 + IE: Unknown: 32040C121860 + IE: Unknown: 0B050000230000 + IE: Unknown: 2D1AAD0117FFFFFF0000000000000000000000000000000000000000 + IE: Unknown: 3D1601000400000000000000000000000000000000000000 + IE: Unknown: 7F080400080000000040 + IE: Unknown: DD1E00904C0408BF0CB259820FEAFF0000EAFF0000C0050001000000C3020002 + IE: Unknown: DD090010180200101C0000 + IE: Unknown: DD180050F2020101880003A4000027A4000042435E0062322F00 + Cell 09 - Address: 98:1E:19:E5:01:39 + Channel:36 + Frequency:5.18 GHz (Channel 36) + Quality=33/70 Signal level=-77 dBm + Encryption key:on + ESSID:"BTHub6-F8K2" + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s + 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 50ms ago + IE: Unknown: 000B4254487562362D46384B32 + IE: Unknown: 01088C129824B048606C + IE: Unknown: 073C4742202401172801172C01173001173401173801173C011740011764011E68011E6C011E70011E74011E78011E7C011E80011E84011E88011E8C011E + IE: Unknown: 200100 + IE: Unknown: 23021500 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B050100110000 + IE: Unknown: 42020000 + IE: Unknown: 2D1AEF0117FFFFFFFF00000000000000000000000000000000000000 + IE: Unknown: 3D1624050000000000000000000000000000000000000000 + IE: Unknown: 7F080400080000000040 + IE: Unknown: BF0CB269830FAAFF0000AAFF0000 + IE: Unknown: C005012A000000 + IE: Unknown: C30402020202 + IE: Unknown: DD800050F204104A0001101044000102103B000103104700102ADE320B3332E522A765BA8ACC7669F81021000242541023000842545F4855425F3610240007312E302D322E30104200063132333435361054000800060050F20400011011000D42545F4855425F362D31323334100800022000103C0001031049000600372A000120 + IE: Unknown: DD0500904C0417 + IE: Unknown: DD090010180201001C0000 + IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00 + Cell 10 - Address: 96:37:F7:ED:E5:FC + Channel:36 + Frequency:5.18 GHz (Channel 36) + Quality=64/70 Signal level=-46 dBm + Encryption key:on + ESSID:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s + 36 Mb/s; 48 Mb/s; 54 Mb/s + Mode:Master + Extra:tsf=0000000000000000 + Extra: Last beacon: 50ms ago + IE: Unknown: 0018000000000000000000000000000000000000000000000000 + IE: Unknown: 01088C129824B048606C + IE: Unknown: 050400010000 + IE: Unknown: 200100 + IE: Unknown: 23020F00 + IE: IEEE 802.11i/WPA2 Version 1 + Group Cipher : CCMP + Pairwise Ciphers (1) : CCMP + Authentication Suites (1) : PSK + IE: Unknown: 0B0500002F0000 + IE: Unknown: 2D1AEF0117FFFFFFFF00000000000000000000000000000000000000 + IE: Unknown: 3D1624050400000000000000000000000000000000000000 + IE: Unknown: 7F080400080000000040 + IE: Unknown: BF0CB5698B0FAAFF0000AAFF0020 + IE: Unknown: C005012A000000 + IE: Unknown: C30402202020 + IE: Unknown: C70132 + IE: Unknown: FF24230900001200100C2002C06F5B8318000C00AAFFAAFFAAFFAAFF1B1CC7711CC7711CC771 + IE: Unknown: FF072404000030FCFF + IE: Unknown: FF022700 + IE: Unknown: FF0E260400A4FF20A4FF4043FF6032FF + IE: Unknown: DD0500904C0417 + IE: Unknown: DD090010180200001C0000 + IE: Unknown: DD180050F2020101840003A4000027A4000042435E0062322F00 + +""" +from pprint import pprint + + +def parse_iwlist(iwlist_output): + data = [] + in_cell = False + cell = [] + for line in iwlist_output.splitlines(): + if line.find(" Cell ") != -1 and cell != []: + data.append(cell) + cell = [] + elif line.find("Scan completed :") > 0: + pass + else: + cell.append(line) + + del data[0][0] + + cells = [] + + for a in data: + cell = {} + for line in a: + line = line.strip() + if line.find("ESSID:") != -1: + if line.partition("ESSID:")[2].strip('"') != "": + cell["SSID"] = line.partition("ESSID:")[2].strip('"') + if line.partition("Signal level=")[2].split("/")[0] != "" != -1: + cell["Signal"] = line.partition("Signal level=")[2].split("/")[0] + if line.find("Encryption key:") != -1: + if line.find(":on") != -1: + cell["WPA"] = "WPA2" + else: + cell["WPA"] = "None" + cells.append(cell) + + pprint(cells) + + +if __name__ == "__main__": + parse_iwlist(iwlist_text)