Qual o comando que usamos para descobrir o MAC Address do cliente?

Gostaria de saber a melhor forma de obter o MAC Address do cliente da minha aplicação Asp.Net Web Forms. Como é uma informação de baixo nível, creio que não seja tão simples como parece.

bfavaretto

65,6mil9 medalhas de ouro148 medalhas de prata226 medalhas de bronze

perguntada 18/02/2014 às 19:16

WilliamWilliam

1431 medalhas de ouro1 medalhas de prata5 medalhas de bronze

0

Não é possível obter essa informação, uma vez que nem o asp.net tem acesso à essa informação da maquina do cliente nem o Javascript, pois ela não é trafegada como parte do protocolo Http.

A única maneira de obter essa informação seria através de um componente ActiveX ou Java applet que precisaria ser instalado na máquina do cliente e as devidas configurações de segurança aplicadas.

respondida 18/02/2014 às 20:05

Qual o comando que usamos para descobrir o MAC Address do cliente?

Eduardo BottcherEduardo Bottcher

7091 medalhas de ouro7 medalhas de prata18 medalhas de bronze

3

Caso seus clientes estejam na mesma LAN que você (por exemplo, em uma intranet), pode ser que seus endereços MAC estejam presentes na tabela ARP do roteador.

Em um ambiente Windows, você pode checar a tabela ARP via comando ARP -a:

Qual o comando que usamos para descobrir o MAC Address do cliente?

A classe System.Diagnostics.Process permite que você execute um processo em seu servidor; opcionalmente, você pode redirecionar o conteúdo gerado para um stream de texto (via StartInfo.RedirectStandardOutput = true).

A função abaixo executa os passos descritos para obter o MAC Address a partir de um endereço IP:

public string GetMacAddress(string ipAddress)
    {
        string macAddress = string.Empty;
        System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
        pProcess.StartInfo.FileName = "arp";
        pProcess.StartInfo.Arguments = "-a " + ipAddress;
        pProcess.StartInfo.UseShellExecute = false;
        pProcess.StartInfo.RedirectStandardOutput = true;
          pProcess.StartInfo.CreateNoWindow = true;
        pProcess.Start();
        string strOutput = pProcess.StandardOutput.ReadToEnd();
        string[] substrings = strOutput.Split('-');
        if (substrings.Length >= 8)
        {
           macAddress = substrings[3].Substring(Math.Max(0, substrings[3].Length - 2)) + "-" + substrings[4] + "-" + substrings[5] + "-" + substrings[6] + "-" + substrings[7] + "-" +
                  substrings[8].Substring(0, 2);
            return macAddress;
        }

        else
        {
            return "not found";
        }
    }

respondida 19/02/2014 às 19:19

Qual o comando que usamos para descobrir o MAC Address do cliente?

OnoSendaiOnoSendai

36,7mil3 medalhas de ouro65 medalhas de prata119 medalhas de bronze

2

Amigos, por erro meu não percebi que se tratava de uma aplicação WEB.

Segue a solução em javascript para listar os endereços MAC, contudo ela utiliza um ActiveX e com isso só funcionará no IE. Vou procurar para você se há alguma solução multi-navegadores.

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Getting MAC Address From Javascript(IE Only)</title>

    <script language="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>

    </head>
    <body>
        <input type="button" value="Show MAC Address" onclick="showMacAddress()" />

        <div id="box">
        </div>
    </body>
</html>

respondida 6/03/2014 às 22:38

Qual o comando que usamos para descobrir o MAC Address do cliente?

Como descobrir endereço MAC address?

Digite e pesquise [Prompt de Comando] na barra de Pesquisa do Windows① e clique em [Abrir]②. Digite o comando [ipconfig / all] e pressione a tecla Enter do teclado③. Após digitar o comando, você pode encontrar o endereço físico (MAC) da Ethernet na seção do adaptador Ethernet.

Como descobrir MAC Address MAC?

Clique no Menu Apple (o ícone da maçã) e depois em “Preferências de Sistema”;.
Clique em “Rede”;.
Selecione a rede em uso e clique no botão “Avançado”;.
Clique na aba “Hardware”;.
O endereço será exibido na tela..

Como descobrir o MAC Address de um PC na rede?

How to: Como descobrir endereço MAC pelo IP.
Step 1: Fazer Ping ao IP. Pingar o IP em causa para constatar que está a comunicar: Ping 192.168.0.xxx..
Step 2: Usar o comando ARP para descobrir o MAC. Na linha de comandos escrever arp -a 192.168.0. xxx Aparecerá em Physical Address o endereço MAC dessa porta de rede..

Como descobrir o MAC do PC Pelo cmd?

Se estiver, para descobrir o MAC basta dar um ping e depois utilizar ainda no prompt de comando o “arp -a”.