A node module to fetch, parse, and lookup entries from the IEEE's OUI database. Adapted from node-ieee-oui-lookup.
npm install mac-lookup
Loading using Config:
// Config is optional
var config = {
csv: './oui.csv'
}
var mac = require('mac-lookup')(config);
// if defining a custom config, make sure to rebuild at least once to generate sqlite3 db
mac.rebuild();
mac.load(done => {
done();
});
// ...
Loading Using Promises:
'use strict';
const {promisify} = require('util');
const macLookup = require('mac-lookup');
const asyncMacLookupLoad = promisify(macLookup.load).bind(macLookup);
(async function () {
await asyncMacLookupLoad();
const name = macLookup.lookup('000000')
console.log(name);
}());
To lookup a MAC prefix:
mac.lookup('00:00:00', function (err, name) {
if (err) throw err;
// name will be null if not found.
console.log('00:00:00 -> ' + name);
});
You can also look up the full mac address with or without full dash, dot, or colon notation:
mac.lookup('0000.0000.0000',function (err, name) {
if (err) throw err;
// name will be null if not found.
console.log('0000.0000.0000 -> ' + name);
});)
If you think the internal DB is outdated, you can rebuild it from the latest file with:
mac.rebuild(function (err) {
if (err) throw err;
console.log('rebuild completed');
});
Iterate thru the entire db
function done() { console.log('done'); }
mac.each(function (err, result) {
console.log('oui', result.oui);
console.log('name', result.name);
}, done);
our csv file for ouis are obtained from here
wget https://standards.ieee.org/develop/regauth/oui/oui.csv