Ich weiß, dass wir die MAC-Adresse eines Benutzers über IE (ActiveX-Objekte) erhalten können.
Gibt es eine Möglichkeit, die MAC-Adresse eines Benutzers mithilfe von JavaScript abzurufen?
Ich weiß, dass wir die MAC-Adresse eines Benutzers über IE (ActiveX-Objekte) erhalten können.
Gibt es eine Möglichkeit, die MAC-Adresse eines Benutzers mithilfe von JavaScript abzurufen?
Antworten:
Ich stimme allen vorherigen Antworten zu, dass es eine Datenschutz- / Sicherheitslücke wäre, wenn Sie dies direkt über Javascript tun könnten. Ich kann mir zwei Dinge vorstellen:
Die schnelle und einfache Antwort lautet Nein.
Javascript ist eine ziemlich hohe Sprache und hat keinen Zugriff auf diese Art von Informationen.
Nein, Sie können die MAC-Adresse nicht in JavaScript abrufen, hauptsächlich weil die MAC-Adresse den laufenden Computer eindeutig identifiziert, sodass dies eine Sicherheitslücke darstellt.
Wenn Sie nur eine eindeutige Kennung benötigen, sollten Sie diese mithilfe eines kryptografischen Algorithmus selbst erstellen und in einem Cookie speichern.
Wenn Sie die MAC-Adresse des Computers wirklich kennen müssen UND für interne Anwendungen entwickeln, empfehlen wir Ihnen, eine externe Komponente zu verwenden: ActiveX für IE, XPCOM für Firefox (als Erweiterung installiert).
Wenn dies für eine Intranetanwendung gilt und alle Clients DHCP verwenden, können Sie den DHCP-Server nach der MAC-Adresse für eine bestimmte IP-Adresse abfragen.
Ich suchte nach dem gleichen Problem und stieß auf den folgenden Code.
So erhalten Sie die Client-MAC-Adresse (Web):
Um die Client-MAC-Adresse nur auf diese Weise zu erhalten, können wir uns auf JavaScript und die ActiveX-Steuerung von Microsoft verlassen. Dies funktioniert nur im IE, wenn Active X für den IE aktiviert ist. Da das ActiveXObject mit dem Firefox nicht verfügbar ist, funktioniert es nicht mit dem Firefox und funktioniert im IE einwandfrei.
Dieses Skript ist nur für den Internet Explorer:
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>