55 lines
1.1 KiB
JavaScript
55 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
const addresses = {
|
|
"Apple": [
|
|
"2:f:b5",
|
|
"1c:36:bb",
|
|
"8c:85:90",
|
|
"8:66:98",
|
|
"dc:2b:2a",
|
|
"34:8:bc",
|
|
"e0:ac:cb",
|
|
"dc:a9:04",
|
|
"dc:a9:4"
|
|
],
|
|
"RaspberryPi": [
|
|
"b8:27:eb"
|
|
],
|
|
"ParticlePhoton": [
|
|
"e0:4f:43"
|
|
],
|
|
"Sonos": [
|
|
"94:9f:3e",
|
|
"78:28:ca"
|
|
],
|
|
"Netgear": [
|
|
"a0:40:a0"
|
|
],
|
|
"Roku": [
|
|
"20:f5:43"
|
|
]
|
|
}
|
|
const stringAddresses = JSON.stringify(addresses);
|
|
|
|
/**
|
|
* Cross references provided mac address with lookup table (incomplete)
|
|
* @param {string} mac
|
|
* @param {string} type
|
|
* @return {string}
|
|
*/
|
|
|
|
function macLookup(mac, type) {
|
|
var leading = mac.split(':').slice(0, 3).join(':');
|
|
|
|
if (type && addresses[type]) {
|
|
if (addresses[type].indexOf(leading) > -1) return type;
|
|
}
|
|
|
|
if (stringAddresses.indexOf(leading) == -1) return false;
|
|
for (var vendor in addresses) {
|
|
if (addresses[vendor].indexOf(leading) > -1) return vendor;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
module.exports = macLookup; |