Récuparation IP

Résolu
cyril4900 Messages postés 13 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 7 août 2007 - 7 nov. 2005 à 14:59
cyril4900 Messages postés 13 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 7 août 2007 - 7 nov. 2005 à 19:15
Bonjour,



Voila je veux un code qui me récupère l'addresse IP de ma machine hote qui fonctionne sur Winows et LINUX.

Et c'est la le problème car j'ai le code ci-dessous qui fonctionnent
très bien sous windows mais ne compile pas sous linux : c au niveaux de
memcpy : voila le code erreur



error: dereferencing pointer to incomplete type

../sources/network.c:99: error: dereferencing pointer to incomplete type





char * search_IP()

{

struct sockaddr_in sin;

struct hostent *phe;

char buffer[64];





#ifdef WIN32

WSADATA wsaData;

WSAStartup(MAKEWORD(2,0),&wsaData);

#endif



gethostname(buffer, sizeof(buffer));

phe = gethostbyname(buffer);



/*l 99*/ memcpy(&(sin.sin_addr.s_addr), phe->h_addr, phe->h_length);



char *IP;

IP=inet_ntoa(sin.sin_addr);

return IP;

}



Je suis dessus depuis pas mal de temp, alors si vous pouvez m'aider :

Merci à beaucoup

4 réponses

cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
7 nov. 2005 à 17:41
salut,

essaie ca:

memcpy(&(sin.sin_addr.s_addr), phe->h_addr_list[0], phe->h_length);



pour le retour de inet_ntoa, pas de pb car cette fonction renvoie un buffer static qui est propre au tas du thread appelant.



a+
3
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
7 nov. 2005 à 15:31
Il me semble que ce qui n'est pas normal, c'est que ca compile sous windows. Le "return IP", il retourne un pointeur sur une chaine qui n'existe plus non ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 nov. 2005 à 15:39
no prob pour compiler quand syntaxe juste, le cas ici pour le return, bien sur ce sera badaboum à tout coup de renvoyer un pointeur sur var locale.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
cyril4900 Messages postés 13 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 7 août 2007
7 nov. 2005 à 19:15
Merci à tous pour vos réponses.
Pour l'histoire du return je suis d'accord avec vous : je ny avais pas pensé , mais cela compile et marche parfaitemant. Aucun plantage.

Et merci à cosmobod pour sa solution.
0
Rejoignez-nous