IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Interroger un serveur DNS


Sujet :

C++

  1. #1
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut Interroger un serveur DNS
    Bonjour,

    Je recherche un moyen portable en C++ d'interroger un serveur DNS afin qu'à partir d'un nom de domaine, j'obtienne la liste des urls des serveurs MX associés.

    J'utilise boost mais il ne semble pas pouvoir le faire.
    J'ai vu qu'il existait bind9 (nslookup pour windows et dig pour Linux) mais je suis un peu perdu dans ses sources

    Savez-vous s'il existe une bibliothèque portable (si possible assez légère) qui pourrait le faire ?

    Sinon, j'essaye aussi si je ne peux pas directement discuter avec le serveur DNS via des sockets dans le forum Réseau.

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Bonne question

    Mes quelques souvenirs du sujet me disent qu'un client DNS se nomme "dns resolver"
    du coup, Notre-ami-à-tous avec "dns resolver lib" me signale ceci: UDNS

    Je ne sais pas ce que ca vaut, mais c'est une premiere piste.

    Le même wikipedia m'oriente aussi vers resolv.conf, il y a bien un client dns dans linux, dont tu peux trouver les sources.
    à défaut d'être "portable et léger" ca peut te donner une solution utilisée

    Bon courage

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Avec un socket UDP, tu peux interroger ton serveur DNS.

    Il faut remplir la structure requête de manière adéquate et analyser la réponse.

    Ici, un début d'info sur la structure de la requête : http://www.frameip.com/dns/

    Ici des info sur le serveur DNS, il me semble qu'il y a aussi des exemples de programmation) : Cours d'introduction à TCP/IP
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    [QUOTE=ram-0000;7291590]Ici, un début d'info sur la structure de la requête : http://www.frameip.com/dns/[QUOTE]

    Merci, la partie 5.2.1 donne même les données à envoyer pour obtenir les serveurs MX.

    @Leternel : Merci pour ton aide, mais j'ai l'impression que l'utilisation de UDNS est plus compliqué que d'envoyer soit même la requête au serveur DNS.

    Par contre je n'ai pas pensé qu'il fallait aussi que trouve aussi l'ip du serveur DNS
    Bon, je vais déjà essayer de faire mes sockets UDP et je verrais plus tard pour le serveur DNS.

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    En général, la ou les adresses de DNS à utiliser sont configurées en même temps que l'usage du DHCP ou d'une ip fixe.

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Citation Envoyé par leternel Voir le message
    En général, la ou les adresses de DNS à utiliser sont configurées en même temps que l'usage du DHCP ou d'une ip fixe.
    Disons que j'aimerais récupéré la/les adresses DNS utilisés par défaut par le client.
    Au pire j'utiliserais un fichier de configuration, mais si possible j'aimerais bien pouvoir réussir à l'obtenir dynamiquement (boost le fait bien donc...).

    Sinon, je suis en train de me pencher sur l'exemple 5.2.1 mais il y a deux choses que je ne comprend pas :
    - Pourquoi 0x07 entre la fin de l'entête et le début du nom à rechercher dans la requête ? (13ème octet)
    - A quoi servent les réponses "Authotity" et "Additionnal" ?
    "Answer" semble répondre à ma requête, donc quelle utilité pour les deux autres ?

  7. #7
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Boost le fait? regarde donc comment.
    Le code source est disponible

  8. #8
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Sinon, si j'ai bien compris, quand on a 'c0 0c' comme nom, le 'c0' indique que le nom a déjà été mis et '0c' indique que le nom commence à l'octet 12 du message, c'est bien cela ?

    EDIT : je pense avoir compris pour le 0x07 avant le nom, c'est la longueur de la partie qui suit :

    neckara.developpez.com => 0x7 neckara 0x10 developpez 0x03 com
    Ce qui donne .neckara.developpez.com quand on regarde avec wireshark par exemple.

  9. #9
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Par contre je n'ai pas pensé qu'il fallait aussi que trouve aussi l'ip du serveur DNS
    Suivant ton OS cible, tu peux peut être demander poliment au noyau et il te répondra gentiment
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  10. #10
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Neckara Voir le message
    - A quoi servent les réponses "Authotity" et "Additionnal" ?
    Authority, c'est pour donner des information au sujet du serveur DNS qui est autorité pour la zone concernée. Tu peux 'superbement' ignorer cette partie.

    Additionnal, c'est pour donner des info additionnelles (mais cela, tu t'en doutais ). Tu peux aussi 'superbement' ignorer cette partie.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  11. #11
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    J'ai regardé avec boost pour obtenir le serveur DNS, il utilise getaddrinfo

    Citation Envoyé par ram-0000 Voir le message
    Suivant ton OS cible, tu peux peut être demander poliment au noyau et il te répondra gentiment
    je viens justement de tomber sur ceci : http://www.cyberciti.biz/faq/how-to-...rs-address-is/

    Je pense qu'un bon vieux #ifdef va m'être très utile

  12. #12
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Sous Windows, tu peux utiliser l'API Win32 pour obtenir l'adresse des serveurs DNS configurés : GetNetworkParams() dans Iphlpapi.dll te donne la liste des serveurs DNS configurés pour la machine dans la structure FIXED_INFO
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  13. #13
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Merci, il me reste plus qu'à me connecter à internet pour tester le tout

  14. #14
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Le code marche

    Par contre chez moi, j'ai des jolis timeout même avec telnet quand je tente de me connecter aux serveurs MX par le port 25, ça vient sûrement de mon réseau

    Sinon j'ai commencé la rédaction d'un petit tutoriel sur le sujet

  15. #15
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Tiens moi au courant pour la relecture technique
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Configurer un serveur DNS,DHCP
    Par arnaud_verlaine dans le forum Réseau
    Réponses: 9
    Dernier message: 11/02/2007, 15h29
  2. Adresse IP et Serveur DNS
    Par bilb0t dans le forum Windows
    Réponses: 2
    Dernier message: 03/02/2006, 09h15
  3. interroger un serveur
    Par vincentweb dans le forum Langage
    Réponses: 5
    Dernier message: 31/10/2005, 21h55
  4. Comment interroger un serveur de jeu ?
    Par RazielReaver dans le forum Web & réseau
    Réponses: 5
    Dernier message: 28/06/2005, 12h12
  5. Serveur DNS
    Par photorelief dans le forum Développement
    Réponses: 1
    Dernier message: 08/04/2005, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo