Vorrei sapere se esiste un modo per fare in modo che NODE recuperi gli indirizzi MAC del server su cui è in esecuzione.Posso recuperare un identificatore di macchina server univoco con node.js?
risposta
Il nodo non è dotato di accesso per accedere a questo tipo di dati di basso livello.
Tuttavia, è possibile eseguire ifconfig
e analizzare il suo output o scrivere un'estensione C++ per il nodo che fornisce una funzione per recuperare l'indirizzo mac. Un altro modo semplice sta leggendo /sys/class/net/eth?/address
:
var fs = require('fs'),
path = require('path');
function getMACAddresses() {
var macs = {}
var devs = fs.readdirSync('/sys/class/net/');
devs.forEach(function(dev) {
var fn = path.join('/sys/class/net', dev, 'address');
if(dev.substr(0, 3) == 'eth' && fs.existsSync(fn)) {
macs[dev] = fs.readFileSync(fn).toString().trim();
}
});
return macs;
}
console.log(getMACAddresses());
La funzione restituisce un oggetto contenente gli indirizzi MAC di tutti eth*
dispositivi. Se desideri tutti i dispositivi che ne hanno uno, anche se sono ad es. chiamato wlan*
, è sufficiente rimuovere il controllo dev.substr(0, 3) == 'eth'
.
ThiefMaster, grazie per la rapida risposta. "/ Sys/class/net/eth?/Address" è multipiattaforma? – clayperez
Molto probabilmente solo per Linux. Certamente non funzionerà su Windows, non è sicuro di altri SO come * BSD. – ThiefMaster
Inizialmente utilizzavo il modulo getmac, ma restituisce semplicemente l'indirizzo mac dal primo dispositivo che trova. Nel mio caso, ho richiesto l'indirizzo mac di wlan0 in modo da poter usare facilmente il tuo codice per ottenere l'indirizzo mac di wlan0 – Lucas
Se siete solo in cerca di un ID server univoco, si potrebbe prendere l'/ approccio BSON MongoDB e utilizzare i primi n byte del hash MD5 del nome host del server:
var machineHash = crypto.createHash('md5').update(os.hostname()).digest('binary');
Questo codice è da node-buffalo. Non perfetto, ma potrebbe essere abbastanza buono a seconda di ciò che stai cercando di fare.
Ho provato il pacchetto getmac ma non funzionava per me (nodo v0.10, Mac OS X) - così ho impostato e creato il mio: https://github.com/scravy/node-macaddress. Funziona in Windows, OS X, Linux, e probabilmente ogni unix con ifconfig
:-)
Ha funzionato perfettamente! – Magico
Qui è il codice node.js utilizzando gli strumenti da riga di comando per ottenere l'indirizzo MAC:
`$ ifconfig | grep eth0 | awk '{print $5}'`
per wlan0
`$ ifconfig | grep wlan0 | awk '{print $5}'`
In node.js, utilizzare questo - salvare il codice a getMAC.js - "$ getMAC.js nodo" per eseguire
`// Get MAC address - $ ifconfig | grep wlan0 | awk '{print $5}'
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { console.log(stdout) }
exec("ifconfig | grep wlan0 | awk '{print $5}'", puts);
`
Ma se si disattiva l'indirizzo MAC wifi sarà una raccolta di zero –
Quindi utilizzare eth0. – JamesNW
- 1. Identificatore univoco IPN PayPal
- 2. Come identifico un identificatore univoco vuoto in SQL Server 2005?
- 3. Identificatore univoco per NSManagedObject
- 4. Identificatore univoco di SQL Server equivalente in C#
- 5. Identificatore univoco per periferica BLE
- 6. identificatore oggetto univoco in javascript
- 7. Identificatore univoco per elementi HTML
- 8. C# guid e identificatore univoco SQL
- 9. Identificatore fisso per una macchina (uuid.getnode)
- 10. L'esecuzione del codice node.js mostra solo un identificatore di nodo
- 11. identificatore univoco php per i client
- 12. iOS 8, PhotoKit, PHAsset, identificatore univoco
- 13. Identificatore univoco iPhone/iPad BESIDI UUID/UDID?
- 14. Distribuzione di un server Node.js di produzione
- 15. Identificatore univoco per Safari mobile e in app in iOS
- 16. WebKit server con node.js
- 17. Identificatore univoco (guid) come chiave primaria nella progettazione del database
- 18. Ottieni identificatore univoco di una discussione in Java 1.4
- 19. Come posso archiviare/recuperare un timestamp in SQL Server?
- 20. Come progettare un server web node.js distribuito
- 21. Problema di vincolo univoco di SQL Server
- 22. Utilizzare più colonne come identificatore univoco per mysql
- 23. Client Node.js per un server socket.io
- 24. Node.js Multi Server Clustering
- 25. java ottiene ID server univoco per riferimento
- 26. Posso programmare un Raspberry Pi con Node.js?
- 27. Scaricare un file dal server Node.JS con AngularJS
- 28. ottenere l'indirizzo mac della macchina corrente con node.js utilizzando getmac
- 29. Come posso recuperare eccezioni UniqueKey Violation con EF6 e SQL Server?
- 30. Come posso recuperare un array di URL con Promise.all?
Sede [questa risposta] (htt p: //stackoverflow.com/questions/16386371/get-the-mac-address-of-the-current-machine-with-node-js-using-getmac) per un altro suggerimento. – user3560651
Questo pacchetto lo fa in modo multipiattaforma ed è testato sul nodo 0.10-0.12 e su io.js: https://github.com/scravy/node-macaddress - vedere il metodo 'one()'. – scravy
Prova questo: https://www.npmjs.com/package/ee-machine-id – camposer