From 44a8af1faacb32faf215c88232865ab21c197dcc Mon Sep 17 00:00:00 2001 From: Al Date: Sun, 20 Nov 2016 13:09:47 -0500 Subject: [PATCH] Update findbutton Added a filter to prevent duplicate MAC address entries on find_button. This makes it easier to locate your dash on a busy network. --- bin/findbutton | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/bin/findbutton b/bin/findbutton index bd2c4d5..b4f235b 100755 --- a/bin/findbutton +++ b/bin/findbutton @@ -13,6 +13,7 @@ if (last_argument.indexOf('findbutton') === -1) { iface = last_argument; } var pcap_session = create_session(iface, 'all'); +var macList = {}; console.log("Watching for arp & udp requests on your local network, please try to press your dash now\nDash buttons should appear as manufactured by 'Amazon Technologies Inc.' "); @@ -29,17 +30,19 @@ pcap_session.on('packet', function(raw_packet) { possible_dash = packet.payload.shost.addr; } possible_dash = int_array_to_hex(possible_dash); + + if(!macList.hasOwnProperty(possible_dash)){ + var log = 'Possible dash hardware address detected: {0} Manufacturer: {1} Protocol: {2}', + manufacturerKey = possible_dash.slice(0,8).toString().toUpperCase().split(':').join(''), + manufacturer; - var log = 'Possible dash hardware address detected: {0} Manufacturer: {1} Protocol: {2}', - manufacturerKey = possible_dash.slice(0,8).toString().toUpperCase().split(':').join(''), - manufacturer; - - if(manufacturer_directory.hasOwnProperty(manufacturerKey)) { - manufacturer = manufacturer_directory[manufacturerKey]; - } else { - manufacturer = 'unknown'; + if(manufacturer_directory.hasOwnProperty(manufacturerKey)) { + manufacturer = manufacturer_directory[manufacturerKey]; + } else { + manufacturer = 'unknown'; + } + console.log(log.replace('{0}', possible_dash).replace('{1}', manufacturer).replace('{2}', protocol)); + macList[possible_dash] = manufacturer; } - - console.log(log.replace('{0}', possible_dash).replace('{1}', manufacturer).replace('{2}', protocol)); } });