Précédent   Forum du club des développeurs et IT Pro > C et C++ > C > Réseau
Réseau Forum d'entraide sur la programmation réseau en C
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/02/2013, 10h36   #1
pires57
Invité de passage
 
Homme Anthony PEROTTO
Étudiant
Inscription : mai 2012
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Anthony PEROTTO
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2012
Messages : 5
Points : 1
Points : 1
Par défaut Récupération de l'adresse ip du dns en C

Hello,
Je cherche actuellement a récupérer l'adresse IP du serveur dns par programmation sous Windows afin de pouvoir lancer un ping dessus dans la foulé.
Sur du Linux cela ne me pose pas de problème, je peut récupérer l'adresse ip en éxécutant cette commande
Code :
/sbin/route -n | grep "^0.0.0.0" | awk '{ print $2} '
par contre sur du windows je pensais utiliser nslookup pour stocker le tout dans un fichier texte.
Code :
system("nslookup>nslookup.txt");
le fichier de texte est bien rempli, le souci se trouve dans le fait que je me retrouve avec une console noir vide dans laquelle je ne parviens pas a sortir en utilisant la commande "exit" par programmation, ce qui m'oblige a taper cette commande pour sortir. Si quelqu'un a une idée pour injecter un "exit" a la commande nslookup je suis preneur.
Merci d'avance
pires57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 11h00   #2
IP_Steph
Modérateur
 
Avatar de IP_Steph
 
Homme Steph
Architecte réseau
Inscription : février 2012
Messages : 1 282
Détails du profil
Informations personnelles :
Nom : Homme Steph
Localisation : France

Informations professionnelles :
Activité : Architecte réseau
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : février 2012
Messages : 1 282
Points : 2 716
Points : 2 716
Salut,

Citation:
Envoyé par pires57 Voir le message
Code :
/sbin/route -n | grep "^0.0.0.0" | awk '{ print $2} '
cas très particulier... Qui ne fonctionnera que si ta default gateway est également DNS (utilisation d'une LiveBox par exemple). Ce serait plus rigoureux d'extraire le DNS du fichier /etc/resolv.conf par exemple.

Steph
__________________
"#define QUESTION ((bb) || !(bb))" - Shakespeare
IP_Steph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 11h09   #3
pires57
Invité de passage
 
Homme Anthony PEROTTO
Étudiant
Inscription : mai 2012
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Anthony PEROTTO
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2012
Messages : 5
Points : 1
Points : 1
oui, enfin le problème se trouve sur windows.
cette appli que je veut faire tourner sur windows doit pouvoir me retourner l'IP du dns. le problème c'est que je suis obliger de saisir manuellement le "exit" pour sortir du nslookup. Ce qui m'arrangerais c'est justement de sortir du nslookup proprement par programmation. Je n'aime pas l'idée de devoir provoquer une erreur pour récupérer l'ip du DNS.
pires57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 11h44   #4
IP_Steph
Modérateur
 
Avatar de IP_Steph
 
Homme Steph
Architecte réseau
Inscription : février 2012
Messages : 1 282
Détails du profil
Informations personnelles :
Nom : Homme Steph
Localisation : France

Informations professionnelles :
Activité : Architecte réseau
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : février 2012
Messages : 1 282
Points : 2 716
Points : 2 716
Tu devrais pouvoir récupérer les DNS avec GetAdaptersAddresses()

http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

Steph
__________________
"#define QUESTION ((bb) || !(bb))" - Shakespeare
IP_Steph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 16h00   #5
pires57
Invité de passage
 
Homme Anthony PEROTTO
Étudiant
Inscription : mai 2012
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Anthony PEROTTO
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2012
Messages : 5
Points : 1
Points : 1
Merci de ta participation mais j'ai fini en faite par trouver une alternative a mon problème.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
                            case 4:
                            {
                                menu3 =4;
                                system("cls");
                                FILE * stream;
                                stream=fopen("pingdns.BAT","w"); //ouverture du fichier en écriture
                                char a[10]={'p','i','n','g',' '}; //declaration d'un tableau statique pour la commande ping
                                fflush(stdin);// vidage du buffer
                                fputs(a,stream); 
                                rewind(stream);
                                fclose(stream); // fermeture du fichier
                                system("ipconfig /all | find \"Serveurs DNS\" > ip.txt");
                                system("sed.exe -e \"s/   Serveurs DNS. . .  . . . . . . . . . . : / /g\" ip.txt > pingdns2.txt"); //on supprime "Serveurs DNS. . .  . . . . . . . . . . :" et on copie l'IPdans pingdns2.bat
                                system("type pingdns2.txt >> pingdns.BAT ");
                                system("pingdns.BAT");
                                system("del pingdns2.txt"); // supression du fichier créer
                                system("del pingdns.BAT"); // supression du fichier créer
                                system("del ip.txt"); // supression du fichier créer
                                system("cls");
                                break;
                            }
pires57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 16h15   #6
IP_Steph
Modérateur
 
Avatar de IP_Steph
 
Homme Steph
Architecte réseau
Inscription : février 2012
Messages : 1 282
Détails du profil
Informations personnelles :
Nom : Homme Steph
Localisation : France

Informations professionnelles :
Activité : Architecte réseau
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : février 2012
Messages : 1 282
Points : 2 716
Points : 2 716
Code :
Merci de ta participation mais j'ai fini en faite par trouver une alternative a mon problème.
Et ben, quel code

Steph
__________________
"#define QUESTION ((bb) || !(bb))" - Shakespeare
IP_Steph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 16h23   #7
pires57
Invité de passage
 
Homme Anthony PEROTTO
Étudiant
Inscription : mai 2012
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Anthony PEROTTO
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2012
Messages : 5
Points : 1
Points : 1
oui, fait un peu a la va vite, j'ai pas trop de temps a réfléchir dessus
pires57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 16h31   #8
leternel
Expert Confirmé
 
Homme Pierre
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 1 211
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Localisation : France

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

Informations forums :
Inscription : juin 2007
Messages : 1 211
Points : 2 565
Points : 2 565
tu veux faire beaucoup mieux? un script batch contenant la meme chose, plutot qu'une suite de "system()"

et pour écrire dans un fichier, il y a aussi la commande echo
__________________
Mes principes de bases du codeur qui veut pouvoir dormir:
  • Une variable de moins est une source d'erreur en moins.
  • Un pointeur de moins est une montagne d'erreurs en moins.
  • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
  • La plus sotte des questions est celle qu'on ne pose pas.
leternel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 16h36   #9
IP_Steph
Modérateur
 
Avatar de IP_Steph
 
Homme Steph
Architecte réseau
Inscription : février 2012
Messages : 1 282
Détails du profil
Informations personnelles :
Nom : Homme Steph
Localisation : France

Informations professionnelles :
Activité : Architecte réseau
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : février 2012
Messages : 1 282
Points : 2 716
Points : 2 716
Citation:
Envoyé par pires57 Voir le message
oui, fait un peu a la va vite
Oui, on appelle ça un quick-and-dirty fix.

Citation:
Envoyé par pires57 Voir le message
j'ai pas trop de temps a réfléchir dessus


Steph
__________________
"#define QUESTION ((bb) || !(bb))" - Shakespeare
IP_Steph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 19h48   #10
pires57
Invité de passage
 
Homme Anthony PEROTTO
Étudiant
Inscription : mai 2012
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Anthony PEROTTO
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2012
Messages : 5
Points : 1
Points : 1
oui enfin dans l'immédiat c'est fonctionnelle mais des que j'aurais un peu plus de temps je vais tenter de faire un truc un peu plus propre.
Non merci, justement je préfère éviter le batch autant que possible et cette partie du programme sera modifié de toute manière... c'est une solution de secours temporaire.
pires57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h18.


 
 
 
 
Partenaires

Hébergement Web