我正在编写一个程序来收集各种 DNS 记录的 ttl 数据。我可以为 SOA 获取它。谁能说如何获取 MX、A 记录的 ttl 值?
问问题
1097 次
2 回答
1
编辑:您必须在 DNS 中查询 MX 或 A 记录
您的完整回复应包含:
- DNS 标头部分
- 一个问题部分,其中的部分被发送回给您(问题编号在 dns 标题中找到)。
- 将在其中找到答案的答案部分(类似于问题部分,答案的数量也可以在 dns 标题中找到)
现在,每个答案都有自己的标题,格式如下:
type - 16 bits
class - 16 bits
ttl - 32 bits
rdlength - 16 bits
标头后面的内容取决于响应的类型,但 ttl 在标头中。
于 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 回答