#!/usr/bin/python # # Test script for wpaspy # Copyright (c) 2013, Jouni Malinen # # This software may be distributed under the terms of the BSD license. # See README for more details. import os import sys import time import wpaspy wpas_ctrl = '/var/run/wpa_supplicant' def wpas_connect(host=None, port=9877): ifaces = [] if host != None: try: wpas = wpaspy.Ctrl(host, port) return wpas except: print("Could not connect to host: ", host) return None if os.path.isdir(wpas_ctrl): try: ifaces = [os.path.join(wpas_ctrl, i) for i in os.listdir(wpas_ctrl)] except OSError as error: print("Could not find wpa_supplicant: ", error) return None if len(ifaces) < 1: print("No wpa_supplicant control interface found") return None for ctrl in ifaces: try: wpas = wpaspy.Ctrl(ctrl) return wpas except Exception as e: pass return None def main(host=None, port=9877): print("Testing wpa_supplicant control interface connection") wpas = wpas_connect(host, port) if wpas is None: return print("Connected to wpa_supplicant") print(wpas.request('PING')) mon = wpas_connect(host, port) if mon is None: print("Could not open event monitor connection") return mon.attach() print("Scan") print(wpas.request('SCAN')) count = 0 while count < 10: count += 1 time.sleep(1) while mon.pending(): ev = mon.recv() print(ev) if 'CTRL-EVENT-SCAN-RESULTS' in ev: print('Scan completed') print(wpas.request('SCAN_RESULTS')) count = 10 pass if __name__ == "__main__": if len(sys.argv) > 2: main(host=sys.argv[1], port=int(sys.argv[2])) else: main()