2009-12-11 10 views

Répondre

1

Edit: Vous devez interroger le DNS pour MX ou enregistrements

Votre réponse complète doit contenir:

  1. une section d'en-tête DNS
  2. une section question dans laquelle les sections sont renvoyé à vous (le numéro de questions se trouve dans l'en-tête dns).
  3. une section de réponse où les réponses se trouvent (similaire à la section de question, le nombre de réponses peut également être trouvée dans l'en-tête dns)

Maintenant, chaque réponse aura sa propre tête, qui a la forme suivante:

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

le contenu après l'en-tête dépend du type de la réponse, mais la durée de vie est dans l'en-tête.

est ici une référence: http://www.ietf.org/rfc/rfc1035.txt

+0

TTL dans la section de réponse est de 32 bits, pas 16, selon rfc1035 –

0

Si vous travaillez dans .NET, il y a une assez bonne DNS library on CodeProject.

Vous devriez pouvoir l'utiliser comme ceci:

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