Pesquisa de DNS Java para registros SRV
No código java abaixo, estou fazendo uma consulta de registro DNS SRV para resolver o nome de domínio de destino e a porta associada a um determinado nome de domínio, como [email protected]. A função de pesquisa indicada com /AQUI/ abaixo retorna nulo de alguma forma e não consigo obter um resultado de consulta (ou seja, matriz de registro é nula). Como conseqüência, uma exceção de ponteiro nulo é lançada quando a matriz de registros é acessada no loop for.
O que você acha que estou perdendo para fazer o seguinte código funcionar? Eu estou usando usando dnsjava e o arquivo jar da API relacionado está disponível emhttp://www.dnsjava.org/download/ (na parte inferior da página). Agradecemos antecipadamente por sua sugestão.
<code> import org.xbill.DNS.Lookup; import org.xbill.DNS.Record; import org.xbill.DNS.SRVRecord; import org.xbill.DNS.TextParseException; import org.xbill.DNS.Type; public class DNSLookup { public static void main(String[] args) { if (args.length < 1) { System.err.println("Usage: java -jar DNSLookup <hostname>"); System.exit(1); } String query = "_ssh._tcp." + args[0]; try { /*****HERE*********/ Record[] records = new Lookup(query, Type.SRV).run(); for (Record record : records) { SRVRecord srv = (SRVRecord) record; String hostname = srv.getTarget().toString().replaceFirst("\\.$", ""); int port = srv.getPort(); System.out.println(hostname + ":" + port); } } catch (TextParseException e) { e.printStackTrace(); } } } </code>