none
Obter MAC Address - Cliente ASP.NET RRS feed

  • Pergunta

  • Ola Pessoal,

     

    Para efeito de segurança de acesso ao meu site, eu precisaria pegar o MAC Address da máquina cliente que acessa meu site. 

     

    Todas as pesqusas que fiz até agora, as soluções que achei só me retornam o MAC Address do servidor IIS que roda a aplicação.

     

    A solução que tenho é essa:

     

     ManagementScope theScope = new ManagementScope("\\\\" + Environment.MachineName + "\\root\\cimv2");

                    StringBuilder theQueryBuilder = new StringBuilder();

                    theQueryBuilder.Append("SELECT MACAddress FROM Win32_NetworkAdapter");

                    ObjectQuery theQuery = new ObjectQuery(theQueryBuilder.ToString());

                    ManagementObjectSearcher theSearcher = new ManagementObjectSearcher(theScope, theQuery);

                    ManagementObjectCollection theCollectionOfResults = theSearcher.Get();

     

                    string codigos = string.Empty;

                    foreach (ManagementObject theCurrentObject in theCollectionOfResults)

                    {

                        if (theCurrentObject["MACAddress"] != null)

                        {

                            string macAdd = "MAC Address: " + theCurrentObject["MACAddress"].ToString();                       

                        }

                    }

     

    Alguém sabe como eu pegaria o MAC da máquina cliente e não do servidor de aplicação?

     

    Obrigado.

    quinta-feira, 30 de junho de 2011 20:39

Respostas

    • Marcado como Resposta Harley Araujo terça-feira, 5 de julho de 2011 12:42
    sexta-feira, 1 de julho de 2011 11:30
  • Veja

    How to get Client MAC address(Web):
    To get the client MAC address only way we can rely on JavaScript and Active X control of Microsoft.It is only work in IE if Active X enable for IE. As the ActiveXObject is not available with the Firefox, its not working with the firefox and is working fine in IE.
    This script is for IE only:

    <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>

     


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
    • Marcado como Resposta Harley Araujo terça-feira, 5 de julho de 2011 12:42
    sexta-feira, 1 de julho de 2011 11:47
    Moderador
  • VPN...
    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
    • Marcado como Resposta Harley Araujo terça-feira, 5 de julho de 2011 12:42
    sexta-feira, 1 de julho de 2011 14:57
    Moderador

Todas as Respostas

  • http://forums.asp.net/t/1162184.aspx
    One word frees us of all the weight and pain of life: that word is love.
    quinta-feira, 30 de junho de 2011 21:36
    Moderador
  • Malange,

     

    Obrigado por responder, mas não achei nenhum exemplo nessa sua resposta.

     

    Você tem algum exemplo de como eu pego o MAC Address do Cliente e não o do servidor?

     

    Obrigado!

    quinta-feira, 30 de junho de 2011 21:41
    • Marcado como Resposta Harley Araujo terça-feira, 5 de julho de 2011 12:42
    sexta-feira, 1 de julho de 2011 11:30
  • Veja

    How to get Client MAC address(Web):
    To get the client MAC address only way we can rely on JavaScript and Active X control of Microsoft.It is only work in IE if Active X enable for IE. As the ActiveXObject is not available with the Firefox, its not working with the firefox and is working fine in IE.
    This script is for IE only:

    <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>

     


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
    • Marcado como Resposta Harley Araujo terça-feira, 5 de julho de 2011 12:42
    sexta-feira, 1 de julho de 2011 11:47
    Moderador
  • Vlw pelas respostas Carlos Eduardo e Seilor!

     

    Eu ja tinha visto estas duas soluções que vcs me apresentaram.

     

    Porém, elas so funcionam no IE e tem q habilitar ainda o ActiveX. Esse site é para clientes externos e n tem como controlar se eles estarao usando IE e se estarão com o ActiveX habilitado.

     

    Alguém me indicaria alguma outra solução de segurança para eu barrar acessos a clientes especificos no meu site??

     

    Obrigado.

    sexta-feira, 1 de julho de 2011 12:27
  • VPN...
    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
    • Marcado como Resposta Harley Araujo terça-feira, 5 de julho de 2011 12:42
    sexta-feira, 1 de julho de 2011 14:57
    Moderador
  • Da maneira que vc quer, não é possível!

    O Servidor não recebe o endereço MAC do Cliente!

    tem q rodar um Script no Cliente que gere esse endereço (O Script do Seilor serve, mas tem q ser simplificado OU usar um httpS://)
    ai vc joga esse valor em um campo oculto (Ex. em um form)

    qdo a pessoa for para a página seguinte vc envia esse campo oculto.

    Infelizmente não consigo lhe dar um código pronto, mas espero ter ajudado!

    sexta-feira, 13 de abril de 2012 16:30