Я пишу программу для сбора данных о ttl различных записей DNS. Я мог бы получить ее для SOA. Кто-нибудь может сказать, как получить значение ttl для записей MX, A?
Получение значения ttl для записей DNS
Ответы (2)
Изменить: вам нужно будет запросить DNS для записей MX или A.
Ваш полный ответ должен содержать:
- раздел заголовка DNS
- раздел вопросов, в котором разделы отправляются вам обратно (номер вопросов находится в заголовке dns).
- раздел ответов, в котором будут найдены ответы (аналогично разделу вопросов, количество ответов также можно найти в заголовке dns)
Теперь у каждого ответа будет свой заголовок, который имеет следующий вид:
type - 16 bits
class - 16 bits
ttl - 32 bits
rdlength - 16 bits
содержимое после заголовка зависит от типа ответа, но ttl находится в заголовке.
Вот некоторая ссылка: http://www.ietf.org/rfc/rfc1035.txt
person
user229321
schedule
11.12.2009
TTL в разделе ответа 32 бита, а не 16, согласно rfc1035
- person Hongyi Li; 30.11.2014
Если вы работаете в .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);
}
person
Richard Beier
schedule
11.12.2009