begin process at 2012 05 30 14:58:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

Recuperation d'adresse IP sous LINUX FEDORA


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

Recuperation d'adresse IP sous LINUX FEDORA

jeudi 20 avril 2006 à 19:56:51 | Recuperation d'adresse IP sous LINUX FEDORA

diablo31170


Salut à tous,
J'ai cherché et je n'ai pas trouver un programme ( j'en ai trouvé et ils ne marchent pas) qui permet de Récuperer et de Modifier l'adresse IP de la machine.
La machine fonctionne sous LINUX FEDORA et j'utilise pour développer KDevelop.

Merci d'avance de vous reponse et à bientot

vendredi 21 avril 2006 à 04:11:03 | Re : Recuperation d'adresse IP sous LINUX FEDORA

Axel971

Salut diablo;

Faudrait peut etre préciser sur quelle interface ....
Sinon voila un petit bout de code qui devrait fonctionner : 

   struct hostent *host;
   struct in_addr **adr;

   host = gethostname();
  // parcourt des adresses IP
  for (adr=(struct in_addr **)host->h_addr_list; *adr; adr++)
  {
     printf("IP : %s\n", inet_ntoa(**adr));
  }

au pire des cas il y a des sites qui en parle, exemple :
http://c.developpez.com/faq/c/?page=reseau

vendredi 21 avril 2006 à 13:10:42 | Re : Recuperation d'adresse IP sous LINUX FEDORA

AlexN

Peut être cherches tu la commande ifconfig. ifconfig (tout court) : donne la configuration actuelle, quelquechose comme ça : eth0 Link encap:Ethernet HWaddr 00:80:C8:F8:4A:51 inet addr:192.168.99.35 Bcast:192.168.99.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:190312 errors:0 dropped:0 overruns:0 frame:0 TX packets:86955 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:30701229 (29.2 Mb) TX bytes:7878951 (7.5 Mb) Interrupt:9 Base address:0x5000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:306 errors:0 dropped:0 overruns:0 frame:0 TX packets:306 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:29504 (28.8 Kb) TX bytes:29504 (28.8 Kb) ifconfig -a : affiche la configuration de toutes les cartes réseaux ifconfig eth0 down : desactive l'interface eth0 ifconfig eth0 192.168.99.36 netmask 255.255.255.0 up : réactive eth0 avec la nouvelle ip 192.168.99.36 et le masque de sous réseau 255.255.255.0 sinon plus chirurgical avec : ip link : http://linux-ip.net/html/tools-ip-link.html#tools-ip-link-set-address ip adress : http://linux-ip.net/html/tools-ip-address.html
vendredi 21 avril 2006 à 14:49:47 | Re : Recuperation d'adresse IP sous LINUX FEDORA

Axel971

Ouais aussi, et tu recupère le résultat de ta commande ...
mais normalement c'est pas compliqué à faire
vendredi 21 avril 2006 à 16:18:48 | Re : Recuperation d'adresse IP sous LINUX FEDORA

diablo31170

Bonjour, petites precisions on developpe sous Qt3 avec kdevelop (en cpp of course :)). On utilise une interface ethernet. Le but premier serait d'arriver à recuperer l'@ip locale à partir d'un bout de source.

Axel971: merci de ton conseil, ça peut etre un bon debut de piste, mais à  moins de passer par gethostbyname ça compile pas, et même dans ce cas là... segfault. Qui plus est, ça pose un petit probleme avec les pointeurs (erreurs multiples et tellement touffues que ça sert pas à grand chose de mettre le log de compilation)

AlexN: On a aussi pensé a utiliser directement ifconfig via le source (enfin on a finit par trouver qqc de plus coherent en passant par ip)
Le tout dans la fonction system.
system("ip addr|grep eth0");
mais... oui il y a un mais :), system retourne l'int du code d'execution, du coup on peux evidement l'inclure dans un cout, mais on ne peux pas le stocket dans une chaine de caractere.

Donc si vous aviez l'idée du siecle pour recuperer l'@ip la stocker dans une chaine. Le tout pour pouvoir l'afficher et par la suite la modifier (la cgu necessite un autre post pour cette question?)
Merci d'avance pour les futures reponses et merci encore pour celles qui ont été données

vendredi 21 avril 2006 à 16:46:48 | Re : Recuperation d'adresse IP sous LINUX FEDORA

AlexN

une requete google 'linux qt get ip' donne : http://lists.trolltech.com/qt-interest/2003-05/thread00327-0.html http://lists.trolltech.com/qt-interest/2003-11/thread00525-0.html
vendredi 21 avril 2006 à 17:10:32 | Re : Recuperation d'adresse IP sous LINUX FEDORA

Axel971

Salut,

J'espère que tu as mis les includes diablo, ceux qui étaient nécessaires à une bonne
compilation, sinon AlexN doit avoir raison il y a surement des topic dispo via ton ami.
Sinon moi je te propose une fonction déjà toute faite pour récuperer (modifier c'est une
autre affaire) l'adresse IP, mais elle est basé sur le même type de code que précédement.

[ Lien ]

ou direct [ Lien ]

Ou encore tu peux récupérer directement par la commande ifconfig en t'y prenant comme ca à mons avis :

ifconfig eth0 | grep inet | cut -d":" -f2 | cut -d" " -f1

et pour modifier on va pas réinventer le monde ifconfig aussi,

si t'as besoins de plus de détails, une url et une :


Linux IP et ...


Voilà peut pas faire plus à mon avis

vendredi 21 avril 2006 à 17:35:47 | Re : Recuperation d'adresse IP sous LINUX FEDORA

AlexN

Regardes du coté de chez trolltech qui ont maintenu la librairie Qt je crois. D'autre part une question : Quelle ip voudrais tu ? Puisque ta machine possède autant d'ip que d'interface réseau (lo, eth0, eth1, ppp0, etc...) ? C'est ce que suggère l'un des thread de la liste
vendredi 21 avril 2006 à 17:47:14 | Re : Recuperation d'adresse IP sous LINUX FEDORA

Axel971

Ethernet il a dit je suppose que c'est l'eth0 ...
Allez bonne programmation
Et vive le C#

vendredi 21 avril 2006 à 19:52:20 | Re : Recuperation d'adresse IP sous LINUX FEDORA

diablo31170

Salut,

J'ai une erreur quand je fait la compilation. Tout d abord je vais vous montrer mon source, et apres l'errreur lors de la commande g++ ip.cpp -o ip.exe :

Source :

#include <netdb.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>


void PrintIp(char* HostName)
{
   struct hostent *host;
   struct in_addr **adr;

   if((host = gethostbyname(HostName)) != NULL)
   {
      // parcourt des adresses IP
      for (adr=(struct in_addr **)host->h_addr_list; *adr; adr++)
      {
         printf("IP : %s\n", inet_ntoa(**adr));
      }
   }
}

Et voici mon erreur ke je n'arrive pas a l enlever :

/usr/lib/gcc/i386-redhat-linux/4.0.0/../../../crt1.o(.text+0x18): In function `_start':
: undefined reference to `main'
collect2: ld a retourné 1 code d'état d'exécution
[Diablo@localhost Desktop]$

Merci de vos réponse et a bientot


1 2

Cette discussion est classée dans : recuperation, ip, linux, adresse, fedora


Répondre à ce message

Sujets en rapport avec ce message

[Linux] Obtenir l'adresse IP Local [C] [ par ZedMaTrix ] Hello à tous !! Voilà, il me semble que j'avais posté, je sais plus ( je retrouve plus le poste )... <img src="http://www.sited adresse ip [ par moughite ] salut tout le monde j'arrive pas a réaliser un programme en c++ qui permet d'afficher les information de la commande (ipconfig) c'est a dire (adresse Detection lecteur reseau gràce à son adresse IP [ par morino1003 ] Salut tout le monde.S'il vous plait , j'ai un probléme et j'espére avoir trouver de l'aide.J'ai deux postes, serveur et client.J'ai fait une applicati adresse ip et classe [ par playm2009 ] salut les amis je cherche comment faire un programme en C qui entre l'@ IP puis donner le classe del'@ puis les nombres des machines qu'on peut adress gethostbyname [ par BloP68 ] Bonsoir tout le monde,Je suis actuellement en train d'écrire un logiciel de chat.Je souhaite récuperer l'adresse du serveur grâce à la fonction "getho Obtenir l'adresse MAC d'une IP [ par metos ] Bonjour à tous,     J'ai une adresse IP, et je souhaiterais obtenir l'adresse MAC. Comment peut-on le faire en C?Merci d'avancemetos Obtenir adresse Ip, programme de chat [ par djipey ] Bonsoir!! voila je code un programme de chat avec Qt, qui se sert de l'adresse Ip de l'utilisateur pour héberger le serveur. Une fois qu'un utilisateu Incrémentation d'une adresse IP [ par eleonoraa ] Bonsoir tout le monde :),Alors j'ai un script shell (bash) sous unix à faire est enfaite j'ai un petit problème je cherche dans une boucle for a incré determiner son adresse ip [ par amelie773 ] salut tout le mondeen fait je travaille avec c++ builder et je cherche à avoir mon adresse ip y'a t-il une methode pour le faire???


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 1,622 sec (3)

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