Fazendo uma solicitação DNS usando Java e cronometrando a resposta
-
28-09-2019 - |
Pergunta
Alguém poderia me mostrar como posso fazer uma solicitação DNS a um servidor DNS específico e obter a resposta e o tempo de resposta?
Pretendo usar isso em um applet assinado. Isso é permitido em um applet?
Solução
As API Java padrão que você pode usar é:
Ou a API de pesquisa JNDI mais avançada:
Provedor de serviços DNS para a interface de diretório de nomeação Java
Ambas as APIs Java acima funcionarão em um applet assinado se o applet for concedido os direitos de política exigidos (java.net.socketpermission, por exemplo). Mas quando o applet for usado em uma página da web, o usuário será mostrado primeiro uma caixa de diálogo que solicita permissão para ser executada. Para medir o desempenho dessas chamadas de API, é claro que se pode usar uma chamada simples para java.lang.systen.currenttimemillis ()
Eu não recomendo usar dnsjava.org, costumava ser popular, mas o projeto não é atualizado desde 2004.
Outras dicas
Basta ligar para um dos métodos do INETADDRESS, ou então, dê uma olhada no JNDI com o provedor DNS.
Você precisa de uma implementação de Java de DNS, como dnsjava (Vejo exemplos.html). Certamente não é possível usar isso em um applet, pois viola as restrições de rede.