recupérer son adresse IP [C] - C - Programmation
Marsh Posté le 30-06-2004 à 18:43:31
j ai bien fait ca mais bon, ca me retourne 127.0.0.1, donc bof...
Code :
|
Marsh Posté le 30-06-2004 à 19:45:22
c'est normal, tu donnes localhost, il va te retourner 127.0.0.1....
essaie de mettre le nom de ta machine plutôt...
Marsh Posté le 30-06-2004 à 20:05:11
ping localhost >> [127.0.0.1]
ping machinename >> [192.168.1.6]
Marsh Posté le 30-06-2004 à 22:22:42
Le problème des noms c'est qu'ils peuvent changer...
Mieux vaut passer par l'interface.
Voir ioctl() avec SIOCGIFADDR pour récupérer l'adresse d'une interface donnée (et SIOCGIFCONF pour récupérer les interfaces dispo)
Marsh Posté le 01-07-2004 à 09:04:44
au lieu d'utiliser "localhost", tu peux pe utiliser les infos que te donne la fonction 'gethostname'. C'est sans doute suffisant pour ce que tu veux faire.
Marsh Posté le 01-07-2004 à 10:29:32
SoWhatIn22 a écrit : au lieu d'utiliser "localhost", tu peux pe utiliser les infos que te donne la fonction 'gethostname'. C'est sans doute suffisant pour ce que tu veux faire. |
gethostname ne revoit que le nom de ma machine, ce qui donne exactement le même resultat...
je vais regarder du coté de ioctl(), mais ca m'a pas l air tres POSIX
merci pour vos réponses
Marsh Posté le 01-07-2004 à 11:19:16
gethostname va essayer de faire une résolution DNS ou NIS (j'en sais rien) pour retrouver le nom de la machine en question. Le resulat risque donc de ne pas être "localhost". A partir du vrai nom de la machine, tu pourras retrouver son IP publique.
Marsh Posté le 01-07-2004 à 11:31:04
c'est ce que j'ai fait, j obtient le vrai nom de ma machine que me renvoit 127.0.0.1, c'est pareil avec ping d'ailleurs !
Code :
|
mais je suis d'accord avec toi que ca devrait pas le faire (le DNS doit pas être bien configuré), mais si ca fait ca sur ma machine ca peut le faire sur une autre, et je prefere une solution que marchera a tous les coups, sans dependre du DNS
Marsh Posté le 01-07-2004 à 13:04:46
Bon j ai trouvé comment faire avec ioctl, merci a vous
si ca interesse quelqun:
Code :
|
Marsh Posté le 30-06-2004 à 18:14:18
Bonjour,
voila, je cherche une methode pour recuperer sa propre adresse IP en C sous UNIX.
un peu comme si la fonction gethostaddr() existait
merci