All of these examples are code fragments. Code using these fragments should check exceptions when appropriate, and should:
import org.xbill.DNS.*;InetAddress addr = Address.getByName("www.dnsjava.org");LookupSession s = LookupSession.defaultBuilder().build();
Name mxLookup = Name.fromString("gmail.com.");
s.lookupAsync(mxLookup, Type.MX)
.whenComplete(
(answers, ex) -> {
if (ex == null) {
if (answers.getRecords().isEmpty()) {
System.out.println(mxLookup + " has no MX");
} else {
for (Record rec : answers.getRecords()) {
MXRecord mx = ((MXRecord) rec);
System.out.println(
"Host " + mx.getTarget() + " has preference " + mx.getPriority());
}
}
} else {
ex.printStackTrace();
}
})
.toCompletableFuture()
.get();Record[] records = new Lookup("gmail.com", Type.MX).run();
for (int i = 0; i < records.length; i++) {
MXRecord mx = (MXRecord) records[i];
System.out.println("Host " + mx.getTarget() + " has preference " + mx.getPriority());
}Record queryRecord = Record.newRecord(Name.fromString("dnsjava.org."), Type.A, DClass.IN);
Message queryMessage = Message.newQuery(queryRecord);
Resolver r = new SimpleResolver("8.8.8.8");
r.sendAsync(queryMessage)
.whenComplete(
(answer, ex) -> {
if (ex == null) {
System.out.println(answer);
} else {
ex.printStackTrace();
}
})
.toCompletableFuture()
.get();Lookup l = new Lookup("version.bind.", Type.TXT, DClass.CH);
l.setResolver(new SimpleResolver(args[0]));
l.run();
if (l.getResult() == Lookup.SUCCESSFUL) {
System.out.println(l.getAnswers()[0].rdataToString());
}ZoneTransferIn xfr = ZoneTransferIn.newAXFR(Name.root, "192.5.5.241", null);
xfr.run();
for (Record r : xfr.getAXFR()) {
System.out.println(r);
}Name zone = Name.fromString("dyn.test.example.");
Name host = Name.fromString("host", zone);
Update update = new Update(zone);
update.replace(host, Type.A, 3600, args[0]);
Resolver res = new SimpleResolver("10.0.0.1");
res.setTSIGKey(new TSIG(host, base64.fromString("1234")));
res.setTCP(true);
Message response = res.send(update);Name n = Name.fromString("www.dnsjava.org");
Name o = Name.fromString("dnsjava.org");
System.out.println(n.subdomain(o)); // True
System.out.println(n.compareTo(o)); // > 0
Name rel = n.relativize(o); // the relative name 'www'
Name n2 = Name.concatenate(rel, o);
System.out.println(n2.equals(n)); // True
// www
// dnsjava
// org
for (int i = 0; i < n.labels(); i++) {
System.out.println(n.getLabelString(i));
}