Wiem, że możemy uzyskać adres MAC użytkownika przez IE (obiekty ActiveX).
Czy istnieje sposób na uzyskanie adresu MAC użytkownika za pomocą JavaScript?
Wiem, że możemy uzyskać adres MAC użytkownika przez IE (obiekty ActiveX).
Czy istnieje sposób na uzyskanie adresu MAC użytkownika za pomocą JavaScript?
Odpowiedzi:
Zgadzam się ze wszystkimi poprzednimi odpowiedziami, że byłaby to luka w prywatności / bezpieczeństwie, gdybyś mógł to zrobić bezpośrednio z Javascript. Są dwie rzeczy, o których mogę pomyśleć:
Szybka i prosta odpowiedź brzmi: nie.
Javascript jest językiem wysokiego poziomu i nie ma dostępu do tego rodzaju informacji.
Nie, nie możesz uzyskać adresu MAC w JavaScript, głównie dlatego, że adres MAC jednoznacznie identyfikuje uruchomiony komputer, więc byłby to luka w zabezpieczeniach.
Teraz, jeśli potrzebujesz tylko unikalnego identyfikatora, proponuję utworzyć go samodzielnie za pomocą algorytmu kryptograficznego i zapisać go w pliku cookie.
Jeśli naprawdę potrzebujesz znać adres MAC komputera ORAZ tworzysz dla aplikacji wewnętrznych, proponuję użyć do tego komponentu zewnętrznego: ActiveX dla IE, XPCOM dla Firefoksa (instalowane jako rozszerzenie).
Jeśli jest to aplikacja intranetowa i wszyscy klienci używają DHCP, można wysłać zapytanie do serwera DHCP o adres MAC dla danego adresu IP.
Szukałem tego samego problemu i natknąłem się na następujący kod.
Jak uzyskać adres MAC klienta (sieć):
Aby uzyskać adres MAC klienta, możemy polegać na JavaScript i sterowaniu Active X firmy Microsoft. Działa to tylko w IE, jeśli Active X jest włączony dla IE. Ponieważ obiekt ActiveXObject nie jest dostępny w przeglądarce Firefox, nie działa z przeglądarką Firefox i działa dobrze w przeglądarce IE.
Ten skrypt jest przeznaczony tylko dla IE:
function showMacAddress() {
var obj = new ActiveXObject("WbemScripting.SWbemLocator");
var s = obj.ConnectServer(".");
var properties = s.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
var e = new Enumerator(properties);
var output;
output = '<table border="0" cellPadding="5px" cellSpacing="1px" bgColor="#CCCCCC">';
output = output + '<tr bgColor="#EAEAEA"><td>Caption</td><td>MACAddress</td></tr>';
while (!e.atEnd()) {
e.moveNext();
var p = e.item();
if (!p) continue;
output = output + '<tr bgColor="#FFFFFF">';
output = output + '<td>' + p.Caption; +'</td>';
output = output + '<td>' + p.MACAddress + '</td>';
output = output + '</tr>';
}
output = output + '</table>';
document.getElementById("box").innerHTML = output;
}
showMacAddress();
<div id='box'></div>