获取DNS记录的ttl值

时间:2009-12-11 05:09:13

标签: dns ttl

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

2 个答案:

答案 0 :(得分:1)

编辑:您必须查询DNS以获取MX或A记录

您的完整回复应包含:

  1. DNS标题部分
  2. 一个问题部分,其中的部分会发回给您(问题编号可在dns标题中找到)。
  3. 答案部分,其中将找到答案(类似于问题部分,答案的数量也可以在dns标题中找到)
  4. 现在,每个答案都有自己的标题,其格式如下:

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

    标题后的内容取决于响应类型,但ttl位于标题中。

    以下是一些参考:http://www.ietf.org/rfc/rfc1035.txt

答案 1 :(得分:0)

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

您应该能够像这样使用它:

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);
}