orionsoft-react-scripts
Version:
Orionsoft Configuration and scripts for Create React App.
125 lines (92 loc) • 2.79 kB
Markdown
node-macaddress
===============
[](https://travis-ci.org/scravy/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).
**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 (...)
Usage
-----
```
npm install --save macaddress
```
```JavaScript
var macaddress = require('macaddress');
```
API + Examples
--------------
(async) .one(iface, callback) → string
(async) .one(callback) → string
(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:**
```JavaScript
macaddress.one(function (err, mac) {
console.log("Mac address for this host: %s", mac);
});
```
```
→ Mac address for this host: ab:42:de:13:ef:37
```
**With `iface` parameter:**
```JavaScript
macaddress.one('awdl0', function (err, 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.
```JavaScript
macaddress.all(function (err, all) {
console.log(JSON.stringify(all, null, 2));
});
```
```JavaScript
{
"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.
```JavaScript
console.log(JSON.stringify(macaddress.networkInterfaces(), null, 2));
```
```JavaScript
{
"en0": {
"ipv6": "fe80::cae0:ebff:fe14:1dab",
"ipv4": "192.168.178.22"
},
"awdl0": {
"ipv6": "fe80::58b9:daff:fea9:23a9"
}
}
```