Как получить адрес Mac с помощью javascript / Angularjs [duplicate]

Просто установите для скрытого атрибута значение true:

<form name="loginBox" target="#here" method="post">
    <input name="username" type="text" /><br />
    <input name="password" type="password" />
    <input type="submit" hidden="true" />
</form>
66
задан p.campbell 17 March 2017 в 18:52
поделиться

7 ответов

Я согласен со всеми предыдущими ответами, что это будет уязвимость конфиденциальности / безопасности, если вы сможете сделать это прямо из Javascript. Есть две вещи, о которых я могу думать:

  • Использование Java (с подписанным апплетом)
  • Использование подписанного Javascript, который в FF (и Mozilla вообще) получает более высокие привилегии чем обычный JS (но его довольно сложно настроить)
36
ответ дан Grey Panther 16 August 2018 в 00:03
поделиться

Я искал ту же проблему и наткнулся на следующий код.

Как получить MAC-адрес клиента (Web):

Чтобы получить MAC-адрес клиента только так, может полагаться на управление JavaScript и Active X на Microsoft.It работает только в 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>
0
ответ дан Ad Kahn 16 August 2018 в 00:03
поделиться

Вы не можете получить доступ к MAC address, хотя вы можете получить IP address пользователя

<script type="application/javascript">
    function getip(json){
      alert(json.ip);    // alerts the ip address
    }
</script>

<script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip">
</script>

Ссылка: (См. здесь ).

-18
ответ дан Community 16 August 2018 в 00:03
поделиться
  • 1
    Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения от автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно репутации , вы сможете прокомментировать любую запись . – Mena 12 June 2014 в 10:45
  • 2
    @Mena: автор хотел получить MAC-адрес во всех браузерах, которые не разрешены из-за соображений безопасности, поэтому я дал ему способ идентифицировать клиентскую машину через IP-адрес с надлежащей ссылкой на код. – user 12 June 2014 в 10:51
  • 3
    Кроме того, это не дает внутренним IP-адресам компьютеров, если оно находится за NAT, оно дает внешний IP-адрес, который вы можете так же легко получить на веб-сервере, как в php $ _SERVER ["REMOTE_ADDR"] – Leif Neland 14 September 2017 в 07:45

Быстрый и простой ответ: Нет.

Javascript - довольно высокий уровень языка и не имеет доступа к этой информации.

43
ответ дан GateKiller 16 August 2018 в 00:03
поделиться
  • 1
    то как насчет всего результата поиска Google, предоставляющего образцы кодов для получения MAC-адреса – Moon 26 December 2010 в 03:53
  • 2
    Я быстро просмотрел Google, и все страницы, которые я читал, были единственным решением, основанным только на использовании объектов ActiveX. Если бы вы могли опубликовать ссылку, показывающую иначе ... – GateKiller 12 January 2011 в 17:52
  • 3
    Я действительно не думаю, что это «язык высокого уровня». имеет какое-либо отношение к MAC-адресам, поскольку любой язык программирования на стороне сервера позволяет получить доступ к таблице ARP даже косвенно (например, через подпроцесс). Я думаю, что "клиентский язык" будет работать лучше ... – kirbyfan64sos 6 October 2016 в 19:51
  • 4
    Нет причин, по которым язык высокого уровня не имел бы доступа к низкоуровневой аппаратной информации. В этом случае это не происходит, потому что это будет проблема безопасности. – nsn 7 May 2017 в 09:37

Если это для приложения интрасети, и все клиенты используют DHCP, вы можете запросить DHCP-сервер для MAC-адреса для заданного IP-адреса.

4
ответ дан Ryan Ahearn 16 August 2018 в 00:03
поделиться

неа. Причина, по которой ActiveX может это сделать, заключается в том, что ActiveX - небольшое приложение, которое выполняется на машине клиента.

Я бы предположил, что доступ к такой информации через JavaScript будет уязвимостью безопасности.

5
ответ дан Seibar 16 August 2018 в 00:03
поделиться

Нет, вы не можете получить MAC-адрес в JavaScript, главным образом потому, что MAC-адрес однозначно идентифицирует текущий компьютер, поэтому он будет уязвимостью безопасности.

Теперь, если вам нужен только уникальный идентификатор, я предлагаю вы сами создаете с помощью криптографического алгоритма и сохраняете его в файле cookie.

Если вам действительно нужно знать MAC-адрес компьютера И вы разрабатываете для внутренних приложений, то я предлагаю вам использовать внешний компонент для этого: ActiveX для IE, XPCOM для Firefox (установлен как расширение).

22
ответ дан Vincent Robert 16 August 2018 в 00:03
поделиться
  • 1
    Знаете ли вы о внешнем компоненте для Safari? – user 7 February 2012 в 16:38
  • 2
    Нет. Я действительно предлагал создать его. – Vincent Robert 7 February 2012 в 17:38
  • 3
    как вы предлагаете создать уникальный идентификатор? как вы используете криптографический алгоритм, чтобы гарантировать, что когда-либо пользователь, который запускает его на своей машине, получает уникальный идентификатор? – Michael 11 December 2013 в 00:54
  • 4
    @Michael Wikipedia перечисляет несколько реализаций UUID – Vincent Robert 11 December 2013 в 12:41
Другие вопросы по тегам:

Похожие вопросы: