1252190Srpaulo#!/usr/bin/python 2252190Srpaulo 3346981Scyfrom __future__ import print_function 4252190Srpauloimport dbus 5252190Srpauloimport sys 6252190Srpauloimport time 7252190Srpauloimport gobject 8252190Srpaulofrom dbus.mainloop.glib import DBusGMainLoop 9252190Srpaulo 10252190SrpauloWPAS_DBUS_SERVICE = "fi.w1.wpa_supplicant1" 11252190SrpauloWPAS_DBUS_INTERFACE = "fi.w1.wpa_supplicant1" 12252190SrpauloWPAS_DBUS_OPATH = "/fi/w1/wpa_supplicant1" 13252190SrpauloWPAS_DBUS_INTERFACES_INTERFACE = "fi.w1.wpa_supplicant1.Interface" 14252190Srpaulo 15252190Srpaulodef usage(): 16346981Scy print("Usage: %s <ifname>" % sys.argv[0]) 17346981Scy print("Press Ctrl-C to stop") 18252190Srpaulo 19252190Srpaulodef ProbeRequest(args): 20252190Srpaulo if 'addr' in args: 21346981Scy print('%.2x:%.2x:%.2x:%.2x:%.2x:%.2x' % tuple(args['addr']), 22346981Scy end=' ') 23252190Srpaulo if 'dst' in args: 24346981Scy print('-> %.2x:%.2x:%.2x:%.2x:%.2x:%.2x' % tuple(args['dst']), 25346981Scy end=' ') 26252190Srpaulo if 'bssid' in args: 27346981Scy print('(bssid %.2x:%.2x:%.2x:%.2x:%.2x:%.2x)' % tuple(args['dst']), 28346981Scy end=' ') 29252190Srpaulo if 'signal' in args: 30346981Scy print('signal:%d' % args['signal'], end=' ') 31252190Srpaulo if 'ies' in args: 32346981Scy print('have IEs (%d bytes)' % len(args['ies']), end=' ') 33346981Scy print('') 34252190Srpaulo 35252190Srpauloif __name__ == "__main__": 36252190Srpaulo global bus 37252190Srpaulo global wpas_obj 38252190Srpaulo global if_obj 39252190Srpaulo global p2p_iface 40252190Srpaulo 41252190Srpaulo dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) 42252190Srpaulo 43252190Srpaulo bus = dbus.SystemBus() 44252190Srpaulo wpas_obj = bus.get_object(WPAS_DBUS_SERVICE, WPAS_DBUS_OPATH) 45252190Srpaulo 46252190Srpaulo # Print list of i/f if no one is specified 47252190Srpaulo if (len(sys.argv) < 2) : 48252190Srpaulo usage() 49252190Srpaulo sys.exit(0) 50252190Srpaulo 51252190Srpaulo wpas = dbus.Interface(wpas_obj, WPAS_DBUS_INTERFACE) 52252190Srpaulo 53252190Srpaulo ifname = sys.argv[1] 54252190Srpaulo 55252190Srpaulo path = wpas.GetInterface(ifname) 56252190Srpaulo 57252190Srpaulo if_obj = bus.get_object(WPAS_DBUS_SERVICE, path) 58252190Srpaulo iface = dbus.Interface(if_obj, WPAS_DBUS_INTERFACES_INTERFACE) 59252190Srpaulo 60252190Srpaulo bus.add_signal_receiver(ProbeRequest, 61252190Srpaulo dbus_interface=WPAS_DBUS_INTERFACES_INTERFACE, 62252190Srpaulo signal_name="ProbeRequest") 63252190Srpaulo 64252190Srpaulo iface.SubscribeProbeReq() 65252190Srpaulo 66252190Srpaulo gobject.MainLoop().run() 67