10
votes

Comment puis-je effectuer des recherches DNS à l'aide de C / C ++ sur Linux?

Comment obtenir une fonctionnalité similaire à la commande à l'aide d'une API C (ou d'une autre langue à ce sujet)? J'ai besoin de plus d'informations qu'une seule adresse IP donnée par gethostbyname () ; Plus précisément, les données relatives à SMTP.


2 commentaires

Lorsque vous mentionnez SMTP-liée , voulez-vous dire l'enregistrement MX pour un domaine?


Dupliquer de Stackoverflow.com/Questtions/1093410/ ... et plusieurs otehrs


7 Réponses :


-1
votes

Je ne pense pas qu'il existe une fonction dans la bibliothèque standard C pour cela, mais de nombreuses langues de script ont cette fonctionnalité "intégrée". Par exemple, Perl a le NET :: DNS < / a> package: xxx

Si vous avez besoin de le faire en C, un rapide Google affiche quelques bibliothèques C sur lesquelles vous pouvez utiliser:


0 commentaires

1
votes

Je suggérerais Firedns . C'est une bibliothèque C très rapide C pour toutes sortes de requêtes DNS.


1 commentaires

Le projet a l'air abandonné (dernière publication en 2004) et malheureusement, le lien de téléchargement ne fonctionne pas ( firestuff.org ) ...



21
votes

Si une requête bloquante (synchrone) est correcte, utilisez simplement res_query () Code> et liez votre programme avec -lresolv.

 len = res_query(host, C_IN, T_MX, &answer, sizeof(answer));


0 commentaires

0
votes

Et j'ajouterais, sauf si vous écrivez un relais de messagerie, vous ne devriez certainement pas rechercher des enregistrements MX - vous devriez passer le courrier à un relais de courrier configuré par l'utilisateur.


0 commentaires

1
votes

J'aime ADNS car il permet aux demandes asynchrones


1 commentaires

ps, je préfère comme les feudns, parce que c'est beaucoup plus facile et plus clair: D



1
votes

Je sais que la question est ancienne, mais j'ai la longue foutu d'une bibliothèque DNS, et toutes les réponses ici me frappent. Je pense que les bibliothèques comme les ADNS / UDN ont écrit non pour les êtres humains. Et les feudns pendant longtemps n'ont pas de travail de téléchargement de travail.

J'ai trouvé Poslib comme meilleure bibliothèque DNS avec une interface très facile.


0 commentaires