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 mistake
old-commit-hash: a7aa22253b
vw-mqb-aeb
parent
6e867a05cf
commit
cf2f6b964d
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