GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - scravy/node-macaddress: Get the MAC addresses (hardware addresses) of the hosts network interfaces.

BranchesTags
Open more actions menu

Latest commit

 

History

142 Commits
142 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
lib
lib
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
.travis.yml
.travis.yml
 
 
AGENTS.md
AGENTS.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
index.d.ts
index.d.ts
 
 
index.js
index.js
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
test.js
test.js
 
 

Repository files navigation

node-macaddress

Retrieve MAC addresses in Linux, OS X, and Windows.

A common misconception about MAC addresses is that every host had one MAC address, while a host may have multiple MAC addresses – since every network interface may have its own MAC address.

This library allows to discover the MAC address per network interface and chooses an appropriate interface if all you're interested in is one MAC address identifying the host system (see API + Examples below).

A common misconception about this library is that it reports the mac address of the client that accesses some kind of backend. It does not. Reporting the mac address is not in any way similar to reporting the IP address of the client that accesses your application. This library reports the mac address of the server the application is running on. This useful for example for distributed/scaled applications, for example when generating UUIDs.

Also it seems to be worth noting that this library is not intended to be used in a browser. There is no web api reporting the mac address of the machine (and that is a good thing).

Features:

  • works on Linux, Mac OS X, Windows, and on most UNIX systems.
  • node ≥ 0.12 and io.js report MAC addresses in os.networkInterfaces() this library utilizes this information when available.
  • also features a sane replacement for os.networkInterfaces() (see API + Examples below).
  • works with stoneage node versions ≥ v0.8 (...)
  • Promise support

Usage

npm install --save macaddress
var macaddress = require('macaddress');

API + Examples

(async)  .one(iface, callback) → string
(async)  .one(iface)           → Promise<string>
(async)  .one(callback)        → string
(async)  .all()                → Promise<{ iface: { type: address } }>
(async)  .all(callback)        → { iface: { type: address } }
(sync)   .networkInterfaces()  → { iface: { type: address } }

.one([iface], callback)

Retrieves the MAC address of the given iface.

If iface is omitted, this function automatically chooses an appropriate device (e.g. eth0 in Linux, en0 in OS X, etc.).

Without iface parameter:

macaddress.one(function (err, mac) {
  console.log("Mac address for this host: %s", mac);  
});

or using Promise

macaddress.one().then(function (mac) {
  console.log("Mac address for this host: %s", mac);  
});
→ Mac address for this host: ab:42:de:13:ef:37

With iface parameter:

macaddress.one('awdl0', function (err, mac) {
  console.log("Mac address for awdl0: %s", mac);  
});

or using Promise

macaddress.one('awdl0').then(function (mac) {
  console.log("Mac address for awdl0: %s", mac);  
});
→ Mac address for awdl0: ab:cd:ef:34:12:56

.all(callback)

Retrieves the MAC addresses for all non-internal interfaces.

macaddress.all(function (err, all) {
  console.log(JSON.stringify(all, null, 2));
});

or using Promise

macaddress.all().then(function (all) {
  console.log(JSON.stringify(all, null, 2));
});
{
  "en0": {
    "ipv6": "fe80::cae0:ebff:fe14:1da9",
    "ipv4": "192.168.178.20",
    "mac": "ab:42:de:13:ef:37"
  },
  "awdl0": {
    "ipv6": "fe80::58b9:daff:fea9:23a9",
    "mac": "ab:cd:ef:34:12:56"
  }
}

.networkInterfaces()

A useful replacement of os.networkInterfaces(). Reports only non-internal interfaces.

console.log(JSON.stringify(macaddress.networkInterfaces(), null, 2));
{
  "en0": {
    "ipv6": "fe80::cae0:ebff:fe14:1dab",
    "ipv4": "192.168.178.22"
  },
  "awdl0": {
    "ipv6": "fe80::58b9:daff:fea9:23a9"
  }
}

About

Get the MAC addresses (hardware addresses) of the hosts network interfaces.

Resources

Readme
MIT license
Activity

Stars

145 stars

Watchers

5 watching

Forks

39 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.