TypeWithPride icon indicating copy to clipboard operation
TypeWithPride copied to clipboard

CLI to look up MAC addresses for their vendor in the IEEE OUI database

oui

Look up MAC addresses for their vendor in the IEEE OUI database

The data used in this module comes from the IEEE OUI Data which is updated once a week on Sunday. The module is also able self-update on demand.

Installation

$ npm i oui

Example

var oui = require('oui');

console.log(oui('20:37:06:12:34:56'));
//=> Cisco Systems, Inc
//=> 80 West Tasman Drive
//=> San Jose CA 94568
//=> United States

console.log(oui.search('*Juniper Systems*'))
//=> [
//=>   {
//=>     oui: '0C0535',
//=>     organization: 'Juniper Systems\n1132 W. 1700 N.\nLogan UT 84321\nUnited States'
//=>   }
//=> ]

Installation (CLI)

$ npm install -g oui

Examples (CLI)

$ oui 20:37:06:12:34:56
Cisco Systems, Inc
80 West Tasman Drive
San Jose CA 94568
United States
$ oui --search cisco theory
OUI       ORGANZATION          ADDRESS             COUNTRY
000C41    Cisco-Linksys LLC    121 Theory Dr.      Irvine CA 92612
000F66    Cisco-Linksys LLC    121 Theory Dr.      Irvine CA 92612
001217    Cisco-Linksys LLC    121 Theory Dr.      Irvine CA 92612
001310    Cisco-Linksys LLC    121 Theory Dr.      Irvine CA 92612

To update the local OUI database:

$ oui --update

Or from the original IEEE source (slow):

$ oui --update http://standards.ieee.org/develop/regauth/oui/oui.txt

API

oui(input, [options])

  • input string: The input string. Non-hexadecimal characters and characters after 6 hex characters are found are ignored unless options.strict is set.
  • options Object: A optional options object.
    • strict boolean: When true, only strict input formats will be accepted. Will throw an error when an invalid format is supplied.
    • file string: A absolute file path to oui.json, which contains the parsed oui data. Defaults to the oui.json in the module directory.

Returns: Either a string, or null if no matches are found. Throws if input is not a string.

oui.update([options])

  • options Object: A optional options object.
    • url string: The URL from where to retrieve oui.txt. Default "https://standards-oui.ieee.org/oui/oui.txt".
    • file string: A absolute file path for oui.json, which is used to store the parsed oui data. Defaults to the oui.json in the module directory.

Returns: A Promise that indicates when the internal database has been updated. Rejects on error.

oui.search(patterns [, options])

  • patterns string/Array: One or more wildcard patterns to search the vendor data, as supported by minimatch.
  • options Object: A optional options object.
    • file String: A absolute file path for oui.json, which is used to store the parsed oui data. Defaults to the oui.json in the module directory.
    • All minimatch options are supported as well.

Returns a array of objects in the format {oui, organization}.

strict formats

  • 000000
  • 00:00:00
  • 00-00-00
  • 000000000000
  • 0000.0000.0000
  • 00:00:00:00:00:00
  • 00-00-00-00-00-00

© silverwind, distributed under BSD licence