import java.net.InetSocketAddress; import io.netty.channel.AddressedEnvelope; import io.netty.handler.codec.dns.DnsRecord; import io.netty.handler.codec.dns.DnsResponse; import io.netty.handler.codec.dns.DnsSection; import io.netty.util.concurrent.DefaultPromise; import io.netty.util.concurrent.Future; import io.netty.util.concurrent.GenericFutureListener; public class DnsPromise extends DefaultPromise>{ public DnsPromise() { addListener(new DnsListener()); } public class DnsListener implements GenericFutureListener>>{ @Override public void operationComplete(Future> future) throws Exception { DnsResponse response = future.getNow().content(); DnsRecord answer = response.recordAt(DnsSection.ANSWER); if (answer != null) { System.out.println("POSITIVE ANSWER "+ answer.name()+ " TTL "+ answer.timeToLive()); }else { DnsRecord authoritity = response.recordAt(DnsSection.AUTHORITY); System.out.println("Negative ANSWER TTL" + authoritity.timeToLive()); } } } }