récupérer sa propre IP - C - Programmation
Marsh Posté le 27-02-2004 à 18:49:36
plateforme ?
si windows : man GetIpAddrTable(), pour récuperer un tableau de toutes les ip de la machine
sinon chais pas.
Marsh Posté le 28-02-2004 à 13:23:57
pour une solution qui marche sous win/linux :
gethostname() puis gethostbyname(), les adresses IP des interfaces de la machine devraient etre dans le champ h_addr_list de la struct hostent* retournée.
(solution fouettante/deprecated sous win)
Marsh Posté le 04-03-2004 à 14:01:55
j'ai cree un socket, je l'ai attaché au systeme sur un port
Code :
|
et apres je fais ca
Code :
|
et jobtiens
chemin http://0.0.0.0/home/mehdi/Tp3.Last/img
je pense que le probleme vient de INADDR_ANY lors de l'attahcment. non? comment faire sinon? parce que tout le reste de l'appli marche avec serv (de type sockaddr_in)
merci
Marsh Posté le 05-03-2004 à 00:46:49
pfff, tout me fait chier en ce moment et pas envie d'expliquer pourquoi ton code veut rien dire, mais bon vais tenter : tu as une socket que tu 'bind' a une adresse locale, ici affectée INADDR_ANY, qui est égale a 0x00000000, alors forcément l'appel a inet_ntoa te renvoie 0.0.0.0.
en gros INADDR_ANY est fait pour écouter sur une machine sans se soucier de ses adresses ip.
un bout de la solution :
Code :
|
après demerde toi pour récuperer toutes tes ip, elles sont quelquepart dans host->h_addr_list.
Marsh Posté le 05-03-2004 à 14:23:43
gethostname(name, 256);
dans name, j'ai m63.net195-131-236.noos.fr
et du coup gethostbyname fait nimp...
Marsh Posté le 05-03-2004 à 14:28:57
ca te va pas ça ?
Code :
|
Marsh Posté le 05-03-2004 à 14:49:36
Code :
|
et ca affiche RIEN... comprend pas la
Marsh Posté le 05-03-2004 à 16:32:31
meumeul a écrit :
|
C'est normal puisqu'il y a quatre octets dans ton (h->h_addr_list)[0]. Que représentent-ils d'après toi ?
Marsh Posté le 05-03-2004 à 16:37:01
putain mais tu vas lire la doc !
chuis pas un fan de ce genre de réponse, mais la c'est obligé :
man gethostbyname
man hostent
en gros c'est pas stocké sous forme de char*.
Marsh Posté le 05-03-2004 à 18:16:18
moi je lis
struct hostent {
...
char ** h_addr_list;
}
mé bon
Marsh Posté le 27-02-2004 à 15:34:30
Voila je suis à la recherche d'un petit bout de code qui me permettrtait d'afficher ma propre adresse ip .
j'arrive à afficher l'adresse du cient qui se onnecte mais pas mon adresse
Pouvez-vous m'aider svp ?
Merci ,