begin process at 2012 05 29 16:09:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

plantage lors de la récup d'une IP....


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

plantage lors de la récup d'une IP....

lundi 20 décembre 2004 à 01:46:04 | plantage lors de la récup d'une IP....

Gendal67


Bonsoir tout le monde!!

Alors la, faut que vous m'expliquiez parce que ej en comprends pas!! J'ai cherché sur msdn etc...tout compile nikel...mais le programme plante lors de la connexion...voici le bout de code....


UINT hAddr;
hAddr = inet_addr("mon.nom.dote.mon.fai.fr");

struct hostent* host;
host = gethostbyaddr((char*) &hAddr, 4, AF_INET);

addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(host->h_addr_list[0]);


Merci d'avance de votre aide!

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
lundi 20 décembre 2004 à 02:46:05 | Re : plantage lors de la récup d'une IP....

Nebula

Membre Club
The Windows Sockets inet_addr function converts a string containing an Internet Protocol dotted address into an in_addr.

Autrement dit, une IP sous forme "192.168.0.3" et non "chambre.mshome.net" ! Utilise gethostbyname pour résoudre l'adresse à partir du nom et te connecter.
lundi 20 décembre 2004 à 11:47:45 | Re : plantage lors de la récup d'une IP....

Gendal67


Nan, ça plante tjs....:'(((...le but c'est de retrouver une IP à partir du nom d'hote...et de s'y connecter...qqun a une idée ? plz nébula, si tu sais qqch, parle!! lol

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
lundi 20 décembre 2004 à 12:18:43 | Re : plantage lors de la récup d'une IP....

BruNews

Administrateur CodeS-SourceS
Gendal67 > tu as verifie que gethostbyaddr() ne retourne pas NULL ? ou alors plante avant le retour ?

Nebula aide sur CS du mieux qu'il peut et en termes courtois, j'espere donc qu'il continuera.

ciao...
BruNews, MVP VC++
lundi 20 décembre 2004 à 17:13:40 | Re : plantage lors de la récup d'une IP....

Nebula

Membre Club
Ce code le fait sans problème (ni vérification des erreurs) :

#include <winsock2.h>
#include <stdio.h>

#define MYHOST "www.cppfrance.com"

int main(void) {
WSADATA WSAData;
HOSTENT* ServerInfos;
struct in_addr ServerAddr;
if (WSAStartup(MAKEWORD(2, 0), &WSAData)) {
printf("unable to start winsock\n");
return EXIT_FAILURE;
}
if (!(ServerInfos = gethostbyname(MYHOST))) {
printf("unable to resolve remote host\n");
return EXIT_FAILURE;
}
ServerAddr.s_addr = *((u_long*) ServerInfos->h_addr);
printf("Remote IP for %s : %s\n", MYHOST, inet_ntoa(ServerAddr));
return 0;
}
lundi 20 décembre 2004 à 17:46:36 | Re : plantage lors de la récup d'une IP....

Gendal67


Oui oui merci nébula! il me reste juste un dernier souci : l'adresse IP retourné alors par inet_ntoa() correspond à une IP que j'avais il y a qq heures (g une IP dynamique à chaque connexion, elle change)..mais pas celle que j'ai actuellement!

J'ai fait:


HOSTENT* host;
host = gethostbyname("nomdote.fai.fr");

struct in_addr inaddr;

addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = *((u_long*)host->h_addr_list[0]);

MessageBox(0, inet_ntoa(addr.sin_addr), "lol", MB_OK);

sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
bStayConnec = TRUE;

DWORD tid;
CreateThread(0, 0, WaitForUDPData, (LPVOID) 0, 0, &tid);


En prenant juste host->h_addr_list, ça me donne une IP encore +érronnée....:( voila, si tu comprend ou est le probleme , je suis tout ouie ^^

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
lundi 20 décembre 2004 à 18:19:38 | Re : plantage lors de la récup d'une IP....

Nebula

Membre Club
Normal que çà déconne : h_addr_list est une liste d'ip, h_addr un alias vers la première IP de la liste.

Sinon quand tu changes d'ip, ton host change aussi (en tout cas moi avec wanadoo, il change...) Tourne toi vers un système comme no-ip.com qui te donne un vhost et des outils pour le mettre à jour automatiquement, et résoud l'host en .no-ip.com ?
lundi 20 décembre 2004 à 18:52:37 | Re : plantage lors de la récup d'une IP....

Gendal67


C'est bon, j'ai résolu le probleme!!! Comme un grand, ac votre aide biensur ^^ .. en fait, je ne lui ai pas donné mon nom d'hote donné par le FAI mais plutot le nom de mon ordi sur le réseau..;et ça marche nikel!! encore merci!!

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))


Cette discussion est classée dans : code, host, inet, addr, haddr


Répondre à ce message

Sujets en rapport avec ce message

Documentation Reseaux [ par SnowBlade360 ] Bonjour J'ai trouver sur inernet du code afin de crée une socket mais j'aimerais connaitre exactement tout les champs qui la compose voici mon code : gethostby[addr /name] [ par Djoobstil ] Bonjour,Je fais actuellement un server utilisant l'host du client.Je dois donc retrouver cet host, j'utilise pour ça: gethostbyaddr.Le probleme est qu TimeOut sur un socket [ par djosh ] Voici un bout de code des sources du logiciel VNC, la fonction connect(). Mon but est de réduire le temps de réponse (message:"failed to connect to se "linked error" en C [ par thebadskull ] voila j'ai devc++ sous windows XPj'ai lu un tuto sur comment manier les sockets...voici mon code :void Scann(char buffer[],int port){WSADATA WSAData;W detecter déconnection [ par nem02004 ] Salut les programmeurs xDJai une connection socket ( irc ):donc :     while (1) //Boucle infinie qui recoit les données     {       buf Problème adresse ip et inet_addr [ par Spiffou ] Bonjour à tous, une petite question qui reste sans réponse et très mystérieuse pour moi (ou alors c'est tellement gros que depuis que je me pose la qu Pb d'adresse IP pour transfert UDP unicast [ par Spiffou ] Double post car erreur de theme sur le 1er post.Bonjour à tous, une petite question qui reste sans réponse et très mystérieuse pour moi (ou alors c'es Injecter une adresse Ip sous LINUX avec QT Designer [ par diablo31170 ] Salut tout le monde, Ccomme le titre le précise, j'ai une machine sous Linux. Elle a un adresse IP du style 192.168.0.16, et grâce à un programme, je téléchargement d'un fichier via l'url [WINSOCK] [ par MorbhAck ] Bonsoir tout le monde!j'ai un problème, j'essai de télécharger un fichier .rar avec GETet quand je veux extraire le rar il m'indique que le fichier es inet_addr donne une ip inversé, que faire? [ par themaste ] Bjr à tous!Voila, j'aimerais à partir d'un CString mettre à jour un contrôle d'adresse.Du coup, je fais les opérations suivantes:CString toto="192.168


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales