Chciałbym wiedzieć, czy istnieje sposób na to, aby NODE odzyskał adres (y) MAC serwera, na którym działa.Czy mogę pobrać unikalny identyfikator komputera serwera z plikiem node.js?
Odpowiedz
Węzeł nie ma wbudowanego dostępu do tego rodzaju danych niskiego poziomu.
Można jednak wykonać ifconfig
i przeanalizować jego wynik lub napisać rozszerzenie C++ dla węzła, który udostępnia funkcję odzyskiwania adresu mac. Jeszcze łatwiejszy sposób czyta /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());
Funkcja zwraca obiekt zawierający adresy MAC wszystkich urządzeń eth*
. Jeśli chcesz mieć wszystkie urządzenia, które je mają, nawet jeśli są np. o nazwie wlan*
, po prostu usuń zaznaczenie dev.substr(0, 3) == 'eth'
.
ThiefMaster, dzięki za szybką odpowiedź. Czy jest "/ sys/class/net/eth?/Address" międzyplatformowy? – clayperez
Najprawdopodobniej tylko dla systemu Linux. Z pewnością nie będzie działać na oknach, nie jestem pewien innych systemów, takich jak * BSD. – ThiefMaster
Początkowo korzystałem z modułu getmac, ale po prostu zwróci on adres MAC z pierwszego znalezionego urządzenia. W moim przypadku wymagałem adresu mac wlan0, więc mogłem z łatwością użyć twojego kodu, aby uzyskać adres mac wlan0 – Lucas
Jeśli szukasz po prostu unikatowy identyfikator serwera, można wziąć MongoDB podejście/bson i używać pierwsze n bajtów hash MD5 nazwy hosta serwera:
var machineHash = crypto.createHash('md5').update(os.hostname()).digest('binary');
Kod ten jest od node-buffalo. Nie doskonały, ale może być wystarczająco dobry w zależności od tego, co próbujesz zrobić.
Próbowałem pakiet getmac ale to nie będzie działać dla mnie (węzeł v0.10, Mac OS X) - więc określone i zbudowane własne: https://github.com/scravy/node-macaddress. To działa w systemie Windows, OS X, Linux, UNIX i prawdopodobnie każdy z ifconfig
:-)
Działa doskonale! – Magico
Oto kod node.js za pomocą narzędzi wiersza poleceń, aby uzyskać adres MAC:
`$ ifconfig | grep eth0 | awk '{print $5}'`
dla wlan0
`$ ifconfig | grep wlan0 | awk '{print $5}'`
W node.js, użyj tego - zapisać kod do getMAC.js - "$ node getMAC.js", aby uruchomić
`// 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);
`
Ale jeśli wyłączysz adres wifi mac będzie zbiorem zer –
Następnie użyj eth0. – JamesNW
- 1. Node.js na MAC: Dostęp do serwera Node.js z innego komputera
- 2. Naprawiono identyfikator komputera (uuid.getnode)
- 3. Obawy związane z plikiem node.js
- 4. Czy istnieje unikalny identyfikator komputera, który może być używany niezawodnie nawet w maszynie wirtualnej?
- 5. Znaczniki NFC unikalny identyfikator
- 6. lokalnie unikalny identyfikator
- 7. Kryptograficznie bezpieczny unikalny identyfikator
- 8. Czy istnieje unikalny identyfikator obiektu w Pythonie
- 9. Unikalny identyfikator pliku Dropbox - RESTful API
- 10. Identyfikator UDID urządzenia Android lub unikalny identyfikator?
- 11. Czy mogę pobrać IDFA iOS6 z Javascript?
- 12. Unikalny identyfikator pliku w oknach
- 13. Unikalny identyfikator sesji w pythonie
- 14. Jak uzyskać unikalny identyfikator JVM?
- 15. Szynowe powiązania polimorficzne bez typu (unikalny identyfikator)
- 16. Pobierz plik z serwera Node.JS z AngularJS
- 17. Czy mogę symulować ładowanie ciężkiego http z jednego komputera klienta?
- 18. iOS 8, PhotoKit, PHAsset, unikalny identyfikator
- 19. Android - unikalny i stały identyfikator urządzenia
- 20. Jak wygenerować unikalny identyfikator obiektu w mongodb
- 21. serwer node.js i HTTP/2 (2.0) z plikiem express.js
- 22. Jak wygenerować unikalny identyfikator żądania w Railsach?
- 23. MySQL unikalny identyfikator lub łączone id
- 24. Jak wygenerować unikalny identyfikator w Dart
- 25. Czy token urządzenia jest tak unikalny, jak identyfikator urządzenia?
- 26. Serwer SQL: czy NEWID() zawsze daje unikalny identyfikator?
- 27. C# GUID i unikalny identyfikator SQL
- 28. log4net unikalny identyfikator żądania w ASP.NET
- 29. Jak przypisać unikalny identyfikator elementu DOM
- 30. Skąd pobrać identyfikator sieci Netty?
patrz [to Answer] (HTT p: //stackoverflow.com/questions/16386371/get-the-mac-address-of-the-current-mine-with-node-js-using-getmac) dla innej sugestii. – user3560651
Ten pakiet robi to na wiele platform i jest testowany na węźle 0.10-0.12, a także na io.js: https://github.com/scravy/node-macaddress - patrz metoda 'one()'. – scravy
Wypróbuj ten: https://www.npmjs.com/package/ee-machine-id – camposer