Athena getNetworks method (#21597)
* add iwlist scan * return using athena * add lte * add last one too * unused * add release files * more compact * typo * remove debug code * different file * array * rebase mistakepull/21599/head
parent
cbae2899df
commit
a7aa22253b
7 changed files with 79 additions and 0 deletions
@ -0,0 +1,35 @@ |
|||||||
|
import subprocess |
||||||
|
|
||||||
|
|
||||||
|
def scan(interface="wlan0"): |
||||||
|
result = [] |
||||||
|
try: |
||||||
|
r = subprocess.check_output(["iwlist", interface, "scan"], encoding='utf8') |
||||||
|
|
||||||
|
mac = None |
||||||
|
for line in r.split('\n'): |
||||||
|
if "Address" in line: |
||||||
|
# Based on the adapter eithere a percentage or dBm is returned |
||||||
|
# Add previous network in case no dBm signal level was seen |
||||||
|
if mac is not None: |
||||||
|
result.append({"mac": mac}) |
||||||
|
mac = None |
||||||
|
|
||||||
|
mac = line.split(' ')[-1] |
||||||
|
elif "dBm" in line: |
||||||
|
try: |
||||||
|
level = line.split('Signal level=')[1] |
||||||
|
rss = int(level.split(' ')[0]) |
||||||
|
result.append({"mac": mac, "rss": rss}) |
||||||
|
mac = None |
||||||
|
except ValueError: |
||||||
|
continue |
||||||
|
|
||||||
|
# Add last network if no dBm was found |
||||||
|
if mac is not None: |
||||||
|
result.append({"mac": mac}) |
||||||
|
|
||||||
|
return result |
||||||
|
|
||||||
|
except Exception: |
||||||
|
return None |
Loading…
Reference in new issue