Tenho uma aplicacao WEB feita com Struts/JSP e estou fazendo um log de auditoria durante o login.
Eu quero armazenar o mac address do usuario que tentar logar no sistema. Estou dentro de uma intranet.
eu consigo pegar o IP atraves da variavel request.
Alguem conhece alguma maneira de pegar o MAC ADDRESS do client ?
Coloca uma applet assinada em sua página. Esta applet pode escolher um dos caminhos:
Mais fácil caso seja possível pois precisa poderes de admin da máquina: Executar no Windows “ipconfig /all” e pegar o resultado parseando o local do MAC com regex. No Linux se pode fazer algo semelhante.
Usando JNI a applet usa uma dll do sistema que informa o MAC address. Para conseguir fazer assim precisei de muitas horas vasculhando o msdn. Solução só para Windows.
Por sockets significaria que precisasse rodar um agente em cada máquina para fazer a coleta do MAC address. É justamente isto que a applet fará. Para Windows e Linux já fiz isto. Sobre MAC nada sei.
Não existe almoço grátis. O negócio é sentar e fazer.
Como? Da forma que falei: com applet pois ela pode ficar dentro das páginas html ou com uma aplicação rodando nos clientes.
Como pegar o MAC address? Já disse os 2 modos: parse no resultado da linha de comando ou chamar aplic. nativa com JNI. Precisará de uma aplicação nativa para cada SO (Win, Linux ou MAC). Mas também o comendo para obter o MAC address é diferente em cada SO.