Recuperar mac address em aplicação web

Pessoal,

 Alguém sabe uma forma eficiente de recuperar o mac address do usuário em uma aplicação web?

Sempre me pergunto por que é que o pessoal pede isso - hoje em dia uma aplicação web pode estar rodando em um celular ou tablet, por exemplo… (OK, no caso do celular você sempre pode pedir o IMEI, e em um tablet 3G também)

Isso é para forçar a identificação do usuário? Não dá para usar um login e senha como todo mundo?

Infelizmente isso não tem jeito não…
O Mac Address é uma informação que pertence a uma camada bem mais abaixo no protocolo de rede, uma aplicação geralmente não tem acesso.

Seria possível ter essa informação (com restrições) fazendo uma gambiarra que é consultar a tabela ARP (integrando com o comando arp do sistema operacional) e comparando para ver qual dos MACs listados na tabela corresponde ao IP do usuário.
Mas veja que eu coloquei com restrições, e o motivo é: se o usuário passou por algum roteador ou firewall seu servidor nunca saberá o endereço físico da máquina; o endereço físico que chega na conexão é o do roteador.

O mais importante é considerar o questionamento do entaglement: será que você precisa mesmo disso?

Se for por razão de segurança, tem um detalhe que talvez você não esteja ainda ciente, mas faz toda a diferença: o MAC address usado pra subir uma placa de rece pode ser alterado com extrema facilidade (no Linux por exemplo o mesmo arquivo que configura o IP permite especificar um mac address), então não confie nisso.

Obrigado pelo retorno aí pessoal. Isso seria por questão de segurança mesmo. Pensei em fazer uma validação de login por (login, senha, cpf e mac address). Ou seja, pro cara poder acessar o sistema ele tem que ter o mac cadastrado antes. Será que não rola?

Antes o Net Virtua tinha uma aplicação de medição de consumo que exigia o Mac Address do cable modem, e ainda por cima você tinha de entrar com os dados manualmente :slight_smile: - acho essa uma das poucas coisas que fazem sentido.

Hoje em dia, acho que ele precisa apenas do login ou CPF do usuário, em vez dessa bizarrice de pedir o MAC address do modem, mas é que não estou conectado no Net Virtua e não sei como é que isso está funcionando.

Rola, porem isso nao ficaria a encargo da aplicacao, e sim do servidor.

Exemplo:

Seu servidor é linux, voce poderia criar um script para verificar cada nova conexao a ele, independente se seria pra determinada aplicacao ou nao.

no windows o comando para verificar conexoes é o netstat, no linux , se me lembro, é o nbstat ou nbtstat…

Porem reforcando, isso ficaria a encargo do servidor, e nao da aplicacao, e isso daria um trabalhinho a mais pro administrador e pro servidor em si.

É que estou tentando melhorar um pouquinho a segurança sabe. Criei um interceptor do vraptor pra verificar se o usuário está logado e pra controle de permissões, mas achei que talvez seria interessante recuperar o mac pra melhorar um pouco mais. Acho que implementar um controle de tentativa de acessos seria interessante também, o que acham?

Acho isso um pouco exagerado. Se quiser uma verdadeira solução de segurança, é necessário ter algo como aquele “token” que os bancos distribuem, o que é obviamente algo que envolve custo.