如何调用权威服务器获取 ip 响应?

How to call authoritative server for ip response?

我已经使用 c 代码缓存了从 dig 命令收到的响应,我想使用权限列表直接调用以查找 ip,避免部分 dns 查找,但我不知道该怎么做。

;; AUTHORITY SECTION:
gogole.com.     172748  IN  NS  ns2.google.com.
gogole.com.     172748  IN  NS  ns3.google.com.
gogole.com.     172748  IN  NS  ns1.google.com.
gogole.com.     172748  IN  NS  ns4.google.com.

;; ADDITIONAL SECTION:
ns2.google.com.     104506  IN  A   216.239.34.10
ns1.google.com.     345589  IN  A   216.239.32.10
ns3.google.com.     104506  IN  A   216.239.36.10
ns4.google.com.     104506  IN  A   216.239.38.10

比如这个是给google的,下次想查询ns1.google.com得到ip。谁能帮我 ?谢谢

Linux dig 命令的语法在其手册页中有描述

man dig

这会告诉你:

A typical invocation of dig looks like:

    dig @server name type

where:

server
    is the name or IP address of the name server to query.
    This can be an IPv4 address in dotted-decimal notation
    or an IPv6 address in colon-delimited notation (...)

因此,一旦您获得了要查询的权威名称服务器的名称或 IP 地址,例如ns1.google.com 如您的示例所示,您只需将 @ns1.google.com 添加到您的 dig 命令行以获取来自该服务器的响应。

例如,像这样:

dig @ns1.google.com google.com A

这对于检查区域所有者为该 DNS 记录设置的 TTL 以及解决 DNS 缓存问题很有用。