Récupération d'une adresse ip a partir du nom

kikos897 Messages postés 61 Statut Membre -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai programmé un simple chat en c/c++ (envoi/réception messages) sauf qu'il qu'en local car je ne sais pas comment récupérer l'ip d'une machine distante hors de mon réseau à partir du nom de cette machine. Si quelqu'un a la solution...

Merci d'avance.
A voir également:

5 réponses

Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Bonjour,
j'ai déjà eu se problème, la fonction à utiliser est gethostbyname() mais impossible de mettre la main sur mon programme pour te montrer comment l'utiliser. Car de mémoire c'est assez compliqué, il faut passer par plusieurs structures et fonctions.
0
kikos897 Messages postés 61 Statut Membre
 
Tout d'abord merci pour d'accepter de m'aider :)

Pour répondre à Fallentree je suis en langage c/c++ pas php à moins qu'il y est une solution pour fusioner les deux langages je ne sais pas si ça va m'avancer.

Et pour Char Snipeur: es-tu sûre qu'on puisse récupérer l'adresse intrenet du pc distant avec gethostbyname()?
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
http://www.manpagez.com/man/3/gethostbyname/
oui.
tu as l'adresse IP dans h_addr_list[0] .
Mais du coup, je viens de trouver cette fonction qui a l'air encore mieux ;
http://www.manpagez.com/man/3/getaddrinfo/
0
kikos897 Messages postés 61 Statut Membre
 
J'ai vu un peu le manuel de getaddrinfo() ça a l'ai pas mal sauf que il y a un truc que je ne comprends pas pour quoi elle renvoi plusieurs adresses? ?Comment savoir quelle est la bonne?
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
un nom DNS peut correspondre à plusieurs adresses IP. Imagine s'il n'y avait qu'un serveur google ! Je ne sais plus comment ça fonctionne, il y a une méthode pour répartir les appels entre plusieurs IP. Bref, tu peux avoir plusieurs IP, et donc la structure reflète ça. Mais à la rigueur tu t'en fout, tu prends le première et c'est bon.
0
kikos897 Messages postés 61 Statut Membre
 
Ok merci pour char sniper, je n'ai encore rien testé mais je pense que ça devrais marcher en tous cas ton aide m'a aider a mieux comprendre le réseau.
Merci :)
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Bonjour,
j'ai enfin retrouvé mon code qui fonctionne.
alors, voilà ce que je fait pour récupérer l'IP :
sockaddr_in sao;
...
sao.sin_addr.s_addr=*(unsigned int*) gethostbyname("www.commentcamarche.net")->h_addr;
int Rco=connect(so,(sockaddr*)&sao,*taille);
et ça fonctionne.
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
Je t'ai donné une réponse, tu ne te donne même pas la pein de me dire ce qui ne va pas.
Je pense qu'on gagnerai du temps si tu expliquait clairement ton problème, ce que tu fais et ce que tu obtiens.
0
kikos897 Messages postés 61 Statut Membre
 
Excuse moi sniper, en fait quand je fait ça ça me retourne les ip du site comment ça marche mais moi je veut mon adresse publique.
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
....
8-O
Forcément que si tu as tapé le code que je t'ai donné, tu obtiens les IP de comment ça marche. Il faut remplacer "www.commentcamarche.net" par le nom DNS que tu veux trouver.
D'un autre coté, je commence vaguement à comprendre ce que tu veux, mais c'est tellement mal exprimer que forcément on répond à coté.
En fait, ce que tu veux c'est récupérer ton IP d'Internet, c'est ça ? (rien à voir avec ta demande initiale).
Là je ne sais pas trop, en C en tout cas, ce n'est pas évident. Ensuite, ça dépend de ta configuration Internet : si tu passes par un routeur ou non.
0
kikos897 Messages postés 61 Statut Membre
 
Oui c'est ce que je cherche l'ip internet de ma machine et d'une autre machine qui n'est pas dans mon réseau local pour que je puisse communiqué avec les deux, et oui y'a un routeur et un nat
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
tant que tu n'aura pas exposer clairement et totalement ton problème, tu n'auras pas de réponse correcte. Pourquoi veux tu l'adresses Internet de ton routeur ? tu n'en as pas besoin.
0
kikos897 Messages postés 61 Statut Membre
 
Regarde dans mon projet ya deux programme en un server et un client, chacun dans un réseau différent par exemple un en France l'autre en Allemagne. Le client se connecte au serveur le serveur accepte, le client envoie un message le serveur répond...

Si ça c'est pas claire...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fallentree Messages postés 2445 Statut Membre 209
 
Bonjour kikos897,

la variable server tu connais...
<?php echo $_SERVER['REMOTE_ADDR']; ?>


houps c est du C/C++
-1
kikos897 Messages postés 61 Statut Membre
 
Apres plusieurs tentatives j'ai pas réussi a avoir à partir de mon code mon IP publique.

Quelqu'un pourrait m'aider?
0
Fallentree Messages postés 2445 Statut Membre 209
 
quel language?
PHP:
<?php echo $ip=$_SERVER['REMOTE_ADDR']; ?>
0
kikos897 Messages postés 61 Statut Membre
 
Langage C ou C++ c'est pareil.

Je veut récupérer mon IP publique et l'attaché a un socket avec un bind.
0