ip -> dns

ip -> dns - C++ - Programmation

Marsh Posté le 28-09-2003 à 14:53:35    

Bonjour,
 
J'aimerai savoir comment faire pour récupérer le dns d'une adresse ip ? Il faut créer soit même un sock sur port 53 ou existe t il déjà une fonction toute faite ?
De plus, en C++, faut il utiliser les fonctions du C ? ou existe t il de bonnes classes sûres ?
 
Merci !
 
PS : Sous Linux.

Reply

Marsh Posté le 28-09-2003 à 14:53:35   

Reply

Marsh Posté le 28-09-2003 à 16:07:36    

gethostbyaddr me semble http://iicrew.free.fr/yvelesmile/spamafote-qui-nekre.gif

Reply

Marsh Posté le 28-09-2003 à 16:30:54    

LaJioT a écrit :

Bonjour,
 
J'aimerai savoir comment faire pour récupérer le dns d'une adresse ip ?  


accroche-toi à ton slip :
 

Code :
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. void chiure(char *str) {
  4.         fprintf(stderr, "%s", str);/*on ne vérifie pas le code vu qu'on ne saurait pas quoi faire si ça chie*/
  5.         exit(1);
  6. }
  7. int main(int argc, char **argv) {
  8.         FILE *p;
  9.         char c;
  10.         p = popen("dig 195.115.xxx.15 ANY | grep 'IN SOA' | awk '{print $6}' |sed -e 's/.$//'", "r" );
  11.         if (p == NULL)
  12.                 chiure("ça a chié!\n" );
  13.         while(fread(&c, sizeof(char), 1, p) == 1)
  14.                 if (putchar(c) == EOF)
  15.                         chiure("l'écriture sur stdout a chié !\n" );
  16.         if (pclose(p))
  17.                 chiure("ça a chi\xc3\xa9 sur le pclose mais on peut rien y faire!\n" );
  18.         return 0;
  19. }


 [:nraynaud]
 
edit : oubli de stdlib.h pour le exit().


Message édité par nraynaud le 28-09-2003 à 16:36:27
Reply

Marsh Posté le 28-09-2003 à 16:55:52    

bien ouéj
 
while(fread(&c, sizeof(char), 1, p) ==
 
fgetc est ton ami, perror aussi, voir même system, si ce n'est exec (ouvrir un pipe pour l'afficher   [:spamafote] )
j'oublierai pas de faire appel à toi pour nommer mes fonctions  :D


Message édité par Taz le 28-09-2003 à 16:58:18
Reply

Marsh Posté le 28-09-2003 à 17:13:27    

Taz a écrit :

bien ouéj
while(fread(&c, sizeof(char), 1, p) ==
 
fgetc est ton ami, perror aussi, voir même system, si ce n'est exec (ouvrir un pipe pour l'afficher   [:spamafote] )
j'oublierai pas de faire appel à toi pour nommer mes fonctions  :D

j'ai affiché le contenu car le mettre dans une chaine de caratères, c'est une autre aventure, mais je suppose que lui il va en faire autre chose.
fgetc j'ai oublié que ça existait, je fait plus de C moi, je me souviens plus de la lib, surtout que j'avais d'autres trucs en tête (faire un truc qui plante pas, vérifier les codes de retour, faire gaffe aux pointeurs, faire gaffe aux chaînes de formatage) donc le sujet je l'ai un peu perdu de vue.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed