Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用Netty检索DNS TXT数据吗?例如,使用DnsNameResolver?_Netty - Fatal编程技术网

我可以使用Netty检索DNS TXT数据吗?例如,使用DnsNameResolver?

我可以使用Netty检索DNS TXT数据吗?例如,使用DnsNameResolver?,netty,Netty,看起来我可以得到DNS查找,但我在答案中看不到任何东西 final DnsNameResolver resolver = new DnsNameResolverBuilder(EVENT_LOOP_GROUP.next()) .channelType(NioDatagramChannel.class) .queryTimeoutMillis(Duration.ofSeconds(dnsTimeoutSeconds).plusMillis(dnsT

看起来我可以得到DNS查找,但我在答案中看不到任何东西

final DnsNameResolver resolver = new 
DnsNameResolverBuilder(EVENT_LOOP_GROUP.next())
            .channelType(NioDatagramChannel.class)
            .queryTimeoutMillis(Duration.ofSeconds(dnsTimeoutSeconds).plusMillis(dnsTimeoutMilliseconds).toMillis())
            .recursionDesired(true)
            .build();
    try {
        final AddressedEnvelope<DnsResponse, InetSocketAddress> result =
                resolver
                        .query(new DefaultDnsQuestion(host, DnsRecordType.TXT))
                        .get();
...
final DnsNameResolver解析器=新建
DnsNameResolverBuilder(事件\循环\组.next())
.channelType(NioDatagramChannel.class)
.queryTimeoutMillis(持续时间.of秒(dnsTimeoutSeconds).plusMillis(DNstimeOutMillSeconds).toMillis())
.recursionDesired(真)
.build();
试一试{
最终地址开发结果=
分解器
.query(新的DefaultDnsQuestion(主机,DnsRecordType.TXT))
.get();
...
我可以使用Netty检索DNS TXT数据吗?例如,使用DNSNamersolver

是的,你可以

您所做的没有错,但缺少某些部分。
AddressedDevelope
是邮件、发件人和收件人地址的容器。您只需从
AddressedDevelope
获取邮件,然后在
DnsMessage
中查找答案

private static String resolveTxt(String dnsRecord) throws InterruptedException, ExecutionException {
    DnsMessage message = resolver.query(new DefaultDnsQuestion(dnsRecord, DnsRecordType.TXT)).get().content();
    if(message.count(DnsSection.ANSWER) > 0) {
        DefaultDnsRawRecord record = message.recordAt(DnsSection.ANSWER, 0);
        return DefaultDnsRecordDecoder.decodeName(record.content());
    }
    return null;
}