use of org.xbill.DNS.Lookup in project Smack by igniterealtime.
the class DNSJavaResolver method lookupSRVRecords0.
@Override
protected List<SRVRecord> lookupSRVRecords0(String name, List<HostAddress> failedAddresses, DnssecMode dnssecMode) {
List<SRVRecord> res = new ArrayList<SRVRecord>();
Lookup lookup;
try {
lookup = new Lookup(name, Type.SRV);
} catch (TextParseException e) {
throw new IllegalStateException(e);
}
Record[] recs = lookup.run();
if (recs == null)
return res;
for (Record record : recs) {
org.xbill.DNS.SRVRecord srvRecord = (org.xbill.DNS.SRVRecord) record;
if (srvRecord != null && srvRecord.getTarget() != null) {
String host = srvRecord.getTarget().toString();
int port = srvRecord.getPort();
int priority = srvRecord.getPriority();
int weight = srvRecord.getWeight();
List<InetAddress> hostAddresses = lookupHostAddress0(host, failedAddresses, dnssecMode);
if (hostAddresses == null) {
continue;
}
SRVRecord r = new SRVRecord(host, port, priority, weight, hostAddresses);
res.add(r);
}
}
return res;
}
use of org.xbill.DNS.Lookup in project opennms by OpenNMS.
the class DNSResolutionMonitor method resolve.
private static boolean resolve(final Name name, final Resolver resolver, final int type) {
final Lookup lookup = new Lookup(name, type);
// NMS-9238: Do not use a cache when looking up the record,
// that kind of defeats the purpose of this monitor :)
lookup.setCache(null);
lookup.setResolver(resolver);
final Record[] records = lookup.run();
if (records == null) {
return false;
}
return Arrays.stream(records).filter(r -> r.getType() == type).count() > 0;
}
use of org.xbill.DNS.Lookup in project nhin-d by DirectProject.
the class DNSConnectionTest method performLookup.
private static void performLookup() throws Exception {
// turn on debug settings for the DNS client
Options.set("verbose", "true");
Cache ch = Lookup.getDefaultCache(DClass.IN);
ch.clearCache();
if (servers == null || servers.length == 0)
servers = ResolverConfig.getCurrentConfig().servers();
System.out.println("\r\nConfigure DNS resolvers:");
for (String server : servers) {
System.out.println("\t" + server);
}
System.out.println("\r\nLookup up record " + lookupRec);
Lookup lu = new Lookup(new Name(lookupRec), recType);
ExtendedResolver resolver = new ExtendedResolver(servers);
resolver.setTCP(useTCP);
lu.setResolver(resolver);
Record[] retRecords = lu.run();
if (retRecords != null && retRecords.length > 0)
System.out.println(retRecords.length + " records found.");
else
System.out.println("No records found.");
}
use of org.xbill.DNS.Lookup in project nhin-d by DirectProject.
the class RawRecursiveDNSCertQuery method main.
public static void main(String[] args) {
if (args.length == 0) {
printUsage();
System.exit(-1);
}
String emailAddress = "";
String[] servers = null;
// Check parameters
for (int i = 0; i < args.length; i++) {
String arg = args[i];
// Options
if (!arg.startsWith("-")) {
System.err.println("Error: Unexpected argument [" + arg + "]\n");
printUsage();
System.exit(-1);
} else if (arg.equalsIgnoreCase("-add")) {
if (i == args.length - 1 || args[i + 1].startsWith("-")) {
System.err.println("Error: Missing email address");
System.exit(-1);
}
emailAddress = args[++i];
} else if (arg.equals("-server")) {
if (i == args.length - 1 || args[i + 1].startsWith("-")) {
System.err.println("Error: Missing DNS server list");
System.exit(-1);
}
servers = args[++i].split(",");
} else if (arg.equals("-help")) {
printUsage();
System.exit(-1);
} else {
System.err.println("Error: Unknown argument " + arg + "\n");
printUsage();
System.exit(-1);
}
}
if (emailAddress == null || emailAddress.isEmpty()) {
System.err.println("You must provide an email address.");
printUsage();
}
setServers(servers);
int attemptCount = 0;
while (true) {
try {
final String lookupName = emailAddress.replace('@', '.');
// run this forever
final Lookup lu = new Lookup(new Name(lookupName), Type.CERT);
lu.setResolver(createExResolver(dnsServers.toArray(new String[dnsServers.size()]), 0, 6));
lu.setSearchPath((String[]) null);
// clear the cache
lu.setCache(new Cache(DClass.IN));
long startTime = System.currentTimeMillis();
final Record[] retRecords = lu.run();
long endTime = System.currentTimeMillis();
if (retRecords == null || retRecords.length == 0) {
System.out.println("----- Found no certificates -------");
System.out.println("\tDNS search took " + (endTime - startTime) + "ms\r\n");
System.out.println("Failed after " + attemptCount + " successful resolution attempts.");
System.exit(0);
} else {
System.out.println("Found " + retRecords.length + " certificates");
}
System.out.println("\tDNS search took " + (endTime - startTime) + "ms\r\n");
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
++attemptCount;
}
}
use of org.xbill.DNS.Lookup in project opennms by OpenNMS.
the class DnsMonitorIT method testDnsJavaWithDnsServer.
@Test
public void testDnsJavaWithDnsServer() throws TextParseException, UnknownHostException {
final Lookup l = new Lookup("example.com", Type.AAAA);
// make sure we use a temporary cache so don't get results from a previously cached query
// from another test
l.setCache(null);
final SimpleResolver resolver = new SimpleResolver("::1");
resolver.setPort(9153);
l.setResolver(resolver);
l.run();
System.out.println("result: " + l.getResult());
final Record[] answers = l.getAnswers();
assertEquals(answers.length, 1);
final Record record = answers[0];
System.err.println(record.getTTL());
if (l.getResult() == Lookup.SUCCESSFUL) {
System.out.println(l.getAnswers()[0].rdataToString());
}
assertTrue(l.getResult() == Lookup.SUCCESSFUL);
}
Aggregations