MAC-адреса в JavaScript
-
08-06-2019 - |
Вопрос
Я знаю, что мы можем получить MAC-адрес пользователя через IE (объекты ActiveX).
Есть ли способ получить MAC-адрес пользователя с помощью JavaScript?
Решение
Я согласен со всеми предыдущими ответами, что если бы вы могли сделать это непосредственно из Javascript, это было бы уязвимостью конфиденциальности/безопасности.Есть две вещи, о которых я могу думать:
- Использование Java (с подписанным апплетом)
- Использование подписанного Javascript, который в FF (и Mozilla в целом) получает более высокие привилегии, чем обычный JS (но его довольно сложно настроить)
Другие советы
Быстрый и простой ответ — нет.
Javascript — это язык довольно высокого уровня и не имеет доступа к такого рода информации.
Нет, вы не можете получить MAC-адрес в JavaScript, главным образом потому, что MAC-адрес однозначно идентифицирует работающий компьютер, поэтому это будет уязвимостью безопасности.
Теперь, если вам нужен только уникальный идентификатор, я предлагаю вам создать его самостоятельно, используя какой-нибудь криптографический алгоритм, и сохранить его в файле cookie.
Если вам действительно нужно знать MAC-адрес компьютера И вы разрабатываете внутренние приложения, я предлагаю вам использовать для этого внешний компонент:ActiveX для IE, XPCOM для Firefox (устанавливается как расширение).
Неа.Причина, по которой ActiveX может это сделать, заключается в том, что ActiveX — это небольшое приложение, которое запускается на клиентской машине.
Я предполагаю, что доступ к такой информации через JavaScript будет уязвимостью безопасности.
Если это приложение интрасети и все клиенты используют DHCP, вы можете запросить у DHCP-сервера MAC-адрес для данного IP-адреса.
я искал ту же проблему и наткнулся на следующий код.
Как получить MAC-адрес клиента (Интернет):
Чтобы получить MAC-адрес клиента, мы можем полагаться только на JavaScript и элемент управления Active X от Microsoft. Это работает только в IE, если Active X включен для IE.Поскольку ActiveXObject недоступен в Firefox, он не работает с Firefox и отлично работает в IE.
Этот скрипт предназначен только для IE:
<script language="javascript" type="text/javascript">
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;
}
</script>