Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1621 connectés 

  FORUM HardWare.fr
  Programmation

  [C/C++ sous Unix] Manipuler les IPs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C/C++ sous Unix] Manipuler les IPs

n°196482
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 17-08-2002 à 23:20:59  profilanswer
 

Bonjour,
 
Imaginons le cas où j'ai un réseau de 400 ordinateurs par exemple, le premier ayant l'IP 192.168.0.0, le dernier 192.168.1.145 (je vous rassure je n'ai que 2 ordis en réseau ;)
 
Chaque ordinateur a une IP entre ces 2 citées ci-dessus.
Chaque ordinateur a aussi un serveur de lancé sur le port 9000 par exemple.
 
Admettons que je sois sur le premier ordinateur, le routeur par exemple (192.168.0.O), et que je veuille lancer un client qui se connecte au 2 eme, envoie des ordres, puis se deconnecte, et se reconnecte au 3eme, et ainsi de suite jusqu'au 400 eme.
 
J'aimerai donc en indiquant la 2eme IP (192.168.0.1) et la dernière (192.168.1.145) (de type char * dynamique) pouvoir avoir chacune des IPs situées entre (dans une liste de char *, ou bien les unes après les autres, n'importe).
 
J'ai bien une solution, qui consiste en la concaténation des 4 parties de l'IP en hexa, puis à l'extraction avec un modulo 256, mais j'aimerai savoir si il existe pas une fonction du C (et s'il vous plaît une fonction standard, pas de conio.h et autres windowseries) qui permette la manipulation des IPs, ou bien une astuce avec les structures hostent ou sockaddr_in qui permette d'incrémenter le champ qui contient l'IP par exemple.
 
 
Merci beaucoup !!!


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
mood
Publicité
Posté le 17-08-2002 à 23:20:59  profilanswer
 

n°196511
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 17-08-2002 à 23:55:03  profilanswer
 

no idea ???
 
 :)


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°196513
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-08-2002 à 23:59:15  profilanswer
 

inet_addr (et sa réciproque inet_ntoa)
il me semble que ça existe sous Linux aussi donc ça doit être standard...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°196521
mrbebert
Posté le 18-08-2002 à 02:38:10  profilanswer
 

Tu convertis chaque IP en 1 entier (4 valeurs comprises entre 0 et 255, c'est pile poil un entier 32 bits), et tu fais une simple boucle entre les 2 valeurs.

n°196525
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 18-08-2002 à 03:09:02  profilanswer
 

mrbebert a écrit a écrit :

Tu convertis chaque IP en 1 entier (4 valeurs comprises entre 0 et 255, c'est pile poil un entier 32 bits), et tu fais une simple boucle entre les 2 valeurs.




 
salut,
 
c'est en effet ce que je voulais faire, mais je voulais être sûr qu'une fonction ou une structure ne permettait pas d'abord de faire ce que je demande.
Je vais donc voir avec inet_addr et inet_ntoa (qui existent bien sous Linux)
 
Merci à vous  :hello:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°196529
HelloWorld
Salut tout le monde!
Posté le 18-08-2002 à 07:36:55  profilanswer
 

Citation :

Tu convertis chaque IP en 1 entier (4 valeurs comprises entre 0 et 255, c'est pile poil un entier 32 bits), et tu fais une simple boucle entre les 2 valeurs.


 
Oui, pour ipv4 ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°196534
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 18-08-2002 à 11:47:52  profilanswer
 

HelloWorld a écrit a écrit :

Citation :

Tu convertis chaque IP en 1 entier (4 valeurs comprises entre 0 et 255, c'est pile poil un entier 32 bits), et tu fais une simple boucle entre les 2 valeurs.


 
Oui, pour ipv4 ...




 
oui bien sur,
 
en tout cas inet_addr et inet_ntoa marchent au poil, le pire c'est que je connaissais déjà ces fonctions, que je suis con :hap:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°196562
mrbebert
Posté le 18-08-2002 à 14:36:05  profilanswer
 

juju_le_barbare a écrit a écrit :

 
 
oui bien sur,
 
en tout cas inet_addr et inet_ntoa marchent au poil, le pire c'est que je connaissais déjà ces fonctions, que je suis con :hap:  



Attention au format du résultat. Dans les fonctions liées au réseau, il y a toujours un problème de little endian/big endian.
Si le dernier chiffre de l'IP correspond bien à l'octet de poids faible, ca ira pour faire la boucle.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C/C++ sous Unix] Manipuler les IPs

 

Sujets relatifs
[C++ sous unix] Moults questions diverses et intéressantes !!!problème avec find et grep ss unix
comment updater la database de 'locate' sous unix sans etre root ?Chaine de caractere : tronquer , manipuler ,exploiter .
[JS] Variable en javascript pour manipuler des objets ???manipuler un fichier excel SANS excel installé.
[C++] sous unix, O_TEXT (fonction open())La taille d'un répertoire sous Unix est elle toujours fixe?
La commande Find (unix)Fonction C pour tester un mot de passe Unix
Plus de sujets relatifs à : [C/C++ sous Unix] Manipuler les IPs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR