use of org.minidns.DNSClient in project minidns by MiniDNS.
the class NSIDTest method testNsidLRoot.
@IntegrationTest
public static NSID testNsidLRoot() {
DNSClient client = new DNSClient(null) {
@Override
protected Builder newQuestion(Builder message) {
message.getEdnsBuilder().addEdnsOption(NSID.REQUEST);
return super.newQuestion(message);
}
};
DNSMessage response = null;
Question q = new Question("de", TYPE.NS);
for (InetAddress lRoot : IterativeDNSClient.getRootServer('l')) {
try {
response = client.query(q, lRoot);
} catch (IOException e) {
continue;
}
break;
}
NSID nsid = response.getEdns().getEdnsOption(OptionCode.NSID);
assertNotNull(nsid);
return nsid;
}
use of org.minidns.DNSClient in project minidns by MiniDNS.
the class AsyncApiTest method simpleAsyncApiTest.
public static void simpleAsyncApiTest() throws IOException {
DNSClient client = new DNSClient();
client.setDataSource(new AsyncNetworkDataSource());
client.getDataSource().setTimeout(60 * 60 * 1000);
MiniDnsFuture<DNSMessage, IOException> future = client.queryAsync("example.com", Record.TYPE.NS);
DNSMessage response = future.getOrThrow();
assertEquals(RESPONSE_CODE.NO_ERROR, response.responseCode);
}
use of org.minidns.DNSClient in project minidns by MiniDNS.
the class AsyncApiTest method tcpAsyncApiTest.
public static void tcpAsyncApiTest() throws IOException {
DNSDataSource dataSource = new AsyncNetworkDataSource();
dataSource.setTimeout(60 * 60 * 1000);
dataSource.setUdpPayloadSize(256);
dataSource.setQueryMode(QueryMode.tcp);
DNSClient client = new DNSClient();
client.setDataSource(dataSource);
client.setAskForDnssec(true);
MiniDnsFuture<DNSMessage, IOException> future = client.queryAsync("google.com", Record.TYPE.AAAA);
DNSMessage response = future.getOrThrow();
assertEquals(RESPONSE_CODE.NO_ERROR, response.responseCode);
}
use of org.minidns.DNSClient in project minidns by MiniDNS.
the class CoreTest method testExampleCom.
@IntegrationTest
public static void testExampleCom() throws IOException {
DNSClient client = new DNSClient(new LRUCache(1024));
// stable?
String exampleIp4 = "93.184.216.34";
// stable?
String exampleIp6 = "2606:2800:220:1:248:1893:25c8:1946";
assertEquals(client.query("example.com", Record.TYPE.A).answerSection.get(0).payloadData.toString(), exampleIp4);
assertEquals(client.query("www.example.com", Record.TYPE.A).answerSection.get(0).payloadData.toString(), exampleIp4);
assertEquals(client.query("example.com", Record.TYPE.AAAA).answerSection.get(0).payloadData.toString(), exampleIp6);
assertEquals(client.query("www.example.com", Record.TYPE.AAAA).answerSection.get(0).payloadData.toString(), exampleIp6);
DNSMessage nsRecords = client.query("example.com", Record.TYPE.NS);
List<String> values = new ArrayList<>();
for (Record<? extends Data> record : nsRecords.answerSection) {
values.add(record.payloadData.toString());
}
Collections.sort(values);
assertEquals(values.get(0), "a.iana-servers.net.");
assertEquals(values.get(1), "b.iana-servers.net.");
}
use of org.minidns.DNSClient in project minidns by MiniDNS.
the class CoreTest method testTcpAnswer.
@IntegrationTest
public static void testTcpAnswer() throws IOException {
DNSClient client = new DNSClient(new LRUCache(1024));
client.setAskForDnssec(true);
client.setDisableResultFilter(true);
DNSMessage result = client.query("www-nsec.example.com", Record.TYPE.A);
assertNotNull(result);
assertTrue(result.toArray().length > 512);
}
Aggregations