#!/usr/bin/python                    

import socket, time, signal, sys

def signal_handler(signal, frame):
  print '\nCtrl-C received from keyboard - script exiting'
  sys.exit(0)

signal.signal(signal.SIGINT, signal_handler)

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setblocking(False)                               
if hasattr(socket,'SO_BROADCAST'):
  s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

s.sendto("000000f6".decode("hex"), ("255.255.255.255", 30718))

buf=''
starttime = time.time()
print "Looking for replies; press Ctrl-C to stop."
while True:
  try:
     (buf, addr) = s.recvfrom(30)
     if buf[3].encode("hex")=="f7":
        print "Received from %s: MAC: %s" % (addr, buf[24:30].encode("hex"))
  except:
     #Timeout in seconds. Allow all devices time to respond
     if time.time()-starttime > 3:
        break
     pass

