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