12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #!/usr/bin/python
- #
- # Test script for wpaspy
- # Copyright (c) 2013, Jouni Malinen <j@w1.fi>
- #
- # 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, 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, 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()
|