uuid added mac addresses

This commit is contained in:
Sebastian Hildebrandt 2021-01-25 09:22:29 +01:00
parent 7e3552f788
commit cb66840407
4 changed files with 86 additions and 33 deletions

View File

@ -328,6 +328,7 @@ I also created a nice little command line tool called [mmon][mmon-github-url] (m
| si.uuid(cb) | {...} | X | X | X | X | X | object of several UUIDs |
| | os | X | X | X | X | | os specific UUID |
| | hardware | X | X | X | X | | hardware specific UUID |
| | macs | X | X | X | X | | MAC addresses |
| si.versions(apps, cb) | {...} | X | X | X | X | X | version information (kernel, ssl, node, ...)<br />apps param is optional for detecting<br />only specific apps/libs<br />(string, comma separated) |
| si.shell(cb) | : string | X | X | X | | | standard shell |
| si.users(cb) | [{...}] | X | X | X | X | X | array of users online |

View File

@ -240,36 +240,6 @@ si.osInfo().then(data => console.log(data));</code></pre class="example">
uefi: true
}</pre>
</tr>
<tr>
<td>si.uuid(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>object of several UUIDs</td>
</tr>
<tr>
<td></td>
<td>os</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>os specific UUID</td>
</tr>
<tr>
<td></td>
<td>hardware</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>hardware specific UUID</td>
</tr>
<tr>
<td>si.shell(cb)</td>
<td>: string</td>
@ -768,4 +738,4 @@ si.users().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -182,6 +182,64 @@ si.system().then(data => console.log(data));</code></pre class="example">
sku: 'Mac-99878xxxx...',
virtual: false,
}
</pre>
</tr>
<tr>
<td>si.uuid(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>object of several UUIDs</td>
</tr>
<tr>
<td></td>
<td>os</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>os specific UUID</td>
</tr>
<tr>
<td></td>
<td>hardware</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>hardware specific UUID</td>
</tr>
<tr>
<td></td>
<td>macs</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>MAC addresses</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.uuid().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
os: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
hardware: 'xxxxxxxxxxxxxx',
macs: [
'01:02:03:04:05:06',
'02:03:04:05:06:07',
'aa:bb:cc:dd:ee:ff'
]
}
</pre>
</tr>
<tr>
@ -473,4 +531,4 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -960,13 +960,37 @@ function shell(callback) {
exports.shell = shell;
function getUniqueMacAdresses() {
const ifaces = os.networkInterfaces();
let macs = [];
for (let dev in ifaces) {
if ({}.hasOwnProperty.call(ifaces, dev)) {
ifaces[dev].forEach(function (details) {
if (details && details.mac && details.mac !== '00:00:00:00:00:00') {
const mac = details.mac.toLowerCase();
if (macs.indexOf(mac) === -1) {
macs.push(mac);
}
}
});
}
}
macs = macs.sort(function (a, b) {
if (a < b) { return -1; }
if (a > b) { return 1; }
return 0;
});
return macs;
}
function uuid(callback) {
return new Promise((resolve) => {
process.nextTick(() => {
let result = {
os: '',
hardware: ''
hardware: '',
macs: getUniqueMacAdresses()
};
let parts;