Search in sources :

Example 1 with Lookup

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;
}
Also used : ArrayList(java.util.ArrayList) Lookup(org.xbill.DNS.Lookup) SRVRecord(org.jivesoftware.smack.util.dns.SRVRecord) Record(org.xbill.DNS.Record) SRVRecord(org.jivesoftware.smack.util.dns.SRVRecord) InetAddress(java.net.InetAddress) TextParseException(org.xbill.DNS.TextParseException)

Example 2 with Lookup

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;
}
Also used : Lookup(org.xbill.DNS.Lookup) Record(org.xbill.DNS.Record)

Example 3 with Lookup

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.");
}
Also used : ExtendedResolver(org.xbill.DNS.ExtendedResolver) Lookup(org.xbill.DNS.Lookup) Record(org.xbill.DNS.Record) Cache(org.xbill.DNS.Cache) Name(org.xbill.DNS.Name)

Example 4 with Lookup

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;
    }
}
Also used : Lookup(org.xbill.DNS.Lookup) Record(org.xbill.DNS.Record) UnknownHostException(java.net.UnknownHostException) Name(org.xbill.DNS.Name) Cache(org.xbill.DNS.Cache)

Example 5 with Lookup

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);
}
Also used : Lookup(org.xbill.DNS.Lookup) Record(org.xbill.DNS.Record) SimpleResolver(org.xbill.DNS.SimpleResolver) Test(org.junit.Test)

Aggregations

Lookup (org.xbill.DNS.Lookup)33 Record (org.xbill.DNS.Record)26 TextParseException (org.xbill.DNS.TextParseException)12 ArrayList (java.util.ArrayList)10 SRVRecord (org.xbill.DNS.SRVRecord)10 Name (org.xbill.DNS.Name)8 SimpleResolver (org.xbill.DNS.SimpleResolver)6 UnknownHostException (java.net.UnknownHostException)5 List (java.util.List)5 Test (org.junit.Test)5 ARecord (org.xbill.DNS.ARecord)5 InetAddress (java.net.InetAddress)4 ExtendedResolver (org.xbill.DNS.ExtendedResolver)4 SortedSet (java.util.SortedSet)3 PTRRecord (org.xbill.DNS.PTRRecord)3 HashSet (java.util.HashSet)2 Cache (org.xbill.DNS.Cache)2 NSRecord (org.xbill.DNS.NSRecord)2 NonNull (androidx.annotation.NonNull)1 Stream (com.annimon.stream.Stream)1