Bonjour,
Je souhaite convertir en c++, un masque de sous-réseau au format cidr en chaine de caractère (tableau de char).
Par exemple: 16 => "255.255.0.0"
Je galère un peu, si quelqu'un à une idée, merci
Bonjour,
Je souhaite convertir en c++, un masque de sous-réseau au format cidr en chaine de caractère (tableau de char).
Par exemple: 16 => "255.255.0.0"
Je galère un peu, si quelqu'un à une idée, merci
Bonjour.
Une adresse IP, c'est simplement 4 nombres variant de 0 à 255.
On peut le représenter avec un ensemble de 4 nombres de 8 bits chacun ou bien avec un seul nombre d'une taille de 32 bits (4×8).
Le format CIDR définit combien de bits sont à 0 :
- Un masque en /24 indique que les 24 bits de poids fort sont à 1, et sous-entend que les 8 autres (32−24) sont à 0.
- Un masque en /16 indique que les 16 bits de poids fort sont à 1, et sous-entend que les 16 autres (32−16) sont à 0.
- etc…
Le travail est donc facilité si on prend la représentation avec 32 bits, il suffit de modifier chaque bits avec les opérations de bit à bit, puis de savoir afficher correctement ce nombre grâce à des algorithme que tu dois être en mesure de déterminer maintenant.
Le tout couplé à un petit std::to_string pour peu que tu disposes d'un compilateur récent (et C++11)![]()
Partager