1

我正在编写一个程序来收集各种 DNS 记录的 ttl 数据。我可以为 SOA 获取它。谁能说如何获取 MX、A 记录的 ttl 值?

4

2 回答 2

1

编辑:您必须在 DNS 中查询 MX 或 A 记录

您的完整回复应包含:

  1. DNS 标头部分
  2. 一个问题部分,其中的部分被发送回给您(问题编号在 dns 标题中找到)。
  3. 将在其中找到答案的答案部分(类似于问题部分,答案的数量也可以在 dns 标题中找到)

现在,每个答案都有自己的标题,格式如下:

type     - 16 bits
class    - 16 bits
ttl      - 32 bits
rdlength - 16 bits

标头后面的内容取决于响应的类型,但 ttl 在标头中。

这里有一些参考:http ://www.ietf.org/rfc/rfc1035.txt

于 2009-12-11T05:22:22.193 回答
0

如果您在 .NET 中工作,那么CodeProject 上有一个相当不错的 DNS 库

您应该可以像这样使用它:

IPAddress dnsServerAddress = IPAddress.Parse("208.67.222.222");

Request request = new Request();
request.AddQuestion(new Question("microsoft.com", DnsType.ANAME, DnsClass.IN));

Response response = Resolver.Lookup(request, dnsServerAddress);

foreach (Answer answer in response.Answers)
{
    Console.WriteLine("{0}: ttl {1}", 
        ((ANameRecord)answer.Record).IPAddress, answer.Ttl);
}
于 2009-12-11T05:59:16.530 回答