resolution d'IP => compil... mais pkoi? pliz c pour demain:/ [C/Reseau] - C++ - Programmation
Marsh Posté le 26-10-2002 à 23:17:45
style :
./resolv www.hardware.fr
IP 129.15.xx.1xx
=> La mienne.
Marsh Posté le 26-10-2002 à 23:34:25
Voila l'integralite du programme :
Code :
|
il envoie une chaine en plus dans le packet, et utilise une lib.
Je suis vraiment curieux de savoir le pourquoi du comment...
Marsh Posté le 26-10-2002 à 23:37:43
www.chezmoicamarche.com
t'as du foirer la config de ton dns...
Marsh Posté le 26-10-2002 à 23:40:48
lorill a écrit a écrit : www.chezmoicamarche.com t'as du foirer la config de ton dns... |
le probleme se rencontre :
-Sur les machines de la fac ( essaye 3 machines sun solaris differentes).
-Sur ma passerelle linux debian
C pour ca que je capte pas.
Par contre, le code surce provenant de la bas ( que j'ai fait qu'adapter a des fins de test ) :
http://www.ecst.csuchico.edu/~beej [...] erver.html
(le dernier, en bas)
marche parfaitement.
Comprends pas.
Marsh Posté le 26-10-2002 à 23:41:45
Tetedeiench a écrit a écrit : |
ben j'ai copié collé ton code, viré tout ce que tu as défini dans mysocket.h, et c'est tout.
Marsh Posté le 26-10-2002 à 23:43:03
lorill a écrit a écrit : ben j'ai copié collé ton code, viré tout ce que tu as défini dans mysocket.h, et c'est tout. |
Ben merde
je vire aussi et je teste...
Marsh Posté le 26-10-2002 à 23:45:03
OK ca doit venir de ma facon de compiler alors, car moi aussi ca marche en compilant direct le fichier...
Je fais :
gcc -c mysocket.c
gcc -o talker talker.c mysocket.o -lsocket -lnsl
...
stoo
Marsh Posté le 26-10-2002 à 23:48:21
oups, vla reellement ce que je fais :
g++ -c mysocket.c
g++ -o talker talker.c mysocket.o -lsocket -lnsl
Pour la simple raison qu'on est oblige d'utiliser g++...
Marsh Posté le 28-10-2002 à 15:03:56
non, mais j'aimerai bien comprendre le pourquoi du comment
Marsh Posté le 28-10-2002 à 18:54:36
Up, j'ai vraiment besoin de la reponse
Voila le code source :
Code :
|
Et la librairie :
Code :
|
Merci
Marsh Posté le 28-10-2002 à 22:12:57
please
Marsh Posté le 28-10-2002 à 22:45:10
Bizarre...
Juste une idée comme ça : Est-ce que la structure hostent est bien remplie après le gethostbyname ? C'est à dire qu'il faudrait voir ce que contient la variable h_addr. Voici un petit programme pour s'assurer que ce qu'elle contient est bon :
Code :
|
Marsh Posté le 29-10-2002 à 03:45:58
gatorette a écrit a écrit : Bizarre... Juste une idée comme ça : Est-ce que la structure hostent est bien remplie après le gethostbyname ? C'est à dire qu'il faudrait voir ce que contient la variable h_addr. Voici un petit programme pour s'assurer que ce qu'elle contient est bon :
|
Merci, mais j'ai trouve le souci...
En fait, je crois que la fonction gesthostbyname assigne une structure globale, et donc renvoie tjs le meme pointeur ( un truc du genre).
Car avant je rpenais la struct renvoyee et je mettais mon IP dedans.
Puis j'appelais une seconde fois la fonction.
Now je le fais plus, ou du moins je copie la valeur de la struct renvoyee dans une autre struct et ca marche...
trop zarbi
Marsh Posté le 29-10-2002 à 08:17:30
Ok, bonne observation... C'est vrai que c'est quelque chose que j'avais jamais remarqué.
Une petite note de Microsoft concernant ce point (désolé je développe sous Windows) :
Citation : [nom]MSDN a écrit[/nom]The application must never attempt to modify this structure or to free any of its components. Furthermore, only one copy of this structure is allocated per thread, so the application should copy any information it needs before issuing any other Windows Sockets function calls. |
(url = http://msdn.microsoft.com/library/en-us/winsock/winsock/gethostbyname_2.asp)
--
Edit: correction de la citation...
Edit2: ...qui ne fonctionne toujours pas (bug ?, protection ?)
Marsh Posté le 29-10-2002 à 15:46:52
gatorette a écrit a écrit : Ok, bonne observation... C'est vrai que c'est quelque chose que j'avais jamais remarqué. Une petite note de Microsoft concernant ce point (désolé je développe sous Windows) :
(url = http://msdn.microsoft.com/library/en-us/winsock/winsock/gethostbyname_2.asp) |
Merci ENORMEMENT, ca explique BEAUCOUP de choses
Pour la citation, n'oublie pas que celle s'appelant quote utilise pas de nom, et celle nommee citation supporte la balise [nom]
Edite mon message si tu veux comprendre
Citation : test |
Test a ecrit a écrit : test2 |
Marsh Posté le 29-10-2002 à 22:07:25
Merci pour l'explication sur la citation... encore quelque chose que j'avais pas remarqué !
Marsh Posté le 26-10-2002 à 23:10:53
Bonjour,
J'ai un probleme en C.
je dois faire une appli reseau ou je dois recuperer une IP sous forme de chaine.
Arguments : en 1) le nom a resoudre.
Je declare donc une structure de type hostent :
struct hostent *he;
puis je l'initialise :
if ((he=gethostbyname(argv[1])) == NULL) { // get the host info
perror("gethostbyname" );
exit(1);
}
Rien de bien fulgurant.
Ensuite je l'affiche via :
printf("dest IP %s, port %d\n", inet_ntoa(*((struct in_addr *)he->h_addr)), MYPORT);
Encore une fois, rien de fulgurant.
Quelqu'un peux alors m'expliquer pourquoi, quoique je mette la dedans, il m'affiche l'IP de ma becane, et pas l'IP liee au dns de la becane passe en parametre ???
merci...
Message édité par Tetedeiench le 28-10-2002 à 18:55:27
---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !