La traduction de notation CIDR pour les feignants
S’il y a bien quelque chose qui me résiste fermement en matière de réseaux, en dehors de la configuration d’ipv6 sur la présente machine, c’est bien la notation CIDR. Conçue en théorie pour simplifier certaines choses, et notamment des plages d’ip en se passant de masque de sous réseau, son calcul est des plus imbuvables, même pour moi. Feignantise oblige, j’ai cherché une solution, et j’ai trouvé.
Rappel rapide sur le pourquoi du comment du CIDR
Je présente aujourd’hui le cas d’ipv4, mais la notation CIDR est aussi utilisée en ipv6.
Donc, le CIDR est censé faire gagner du temps pour le calcul de plages d’adresses ip. C’est peut-être le cas des ordinateurs mais pour ma part, j’ai les plus grandes difficultés à la lire. Et pour son calcul… Je vous laisse tenter de lire la page Wikipedia pour bien vous rendre compte de l’aspect émétique du procédé.
La solution du feignant : cidr2ip
C’est dans le cadre du travail une fois de plus que le problème s’est posé à moi. On me demandait une restriction d’accès à certaines plages d’adresses, qui semblait mal fonctionner. Et donc pour vérifier que les testeurs étaient bien dans les bonnes plages (une erreur de frappe dans une demande texte est si vite arrivée), j’ai cherché un traducteur.
Je ne dois pas être le seul à avoir des problèmes parce qu’un petit malin a pondu un script pour faire le boulot: cidr2ip. (update : j’ai repris le code sur mon propre compte Github suite à la disparition du dépôt original que je partageais)
Son utilisation est des plus triviales. On l’appelle en ligne de commande en lui passant une plage d’adresses en argument et il affiche la liste des adresses de la plage en question. Diablement simple, diablement efficace.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ cidr2ip 192.168.1.0/24 192.168.1.0 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5 192.168.1.6 192.168.1.7 192.168.1.8 192.168.1.9 192.168.1.10 192.168.1.11 192.168.1.12 192.168.1.13 192.168.1.14 (...) 192.168.1.251 192.168.1.252 192.168.1.253 192.168.1.254 192.168.1.255 |
Un outil de plus dans ma besace
Ce n’est certes pas le premier petit utilitaire/script que je vous présente, mais c’est l’un des premiers que je vous fais découvrir grâce à mon travail. Il ne sera probablement pas le dernier d’ailleurs, ou alors vous pourriez bien tomber sur des têtes connues, mais dont on creusera un peu plus les fonctions. Bref, j’ai peut-être moins de temps à vous consacrer, mais je ne m’arrêterai pas pour autant 😉
PS : C’est du Perl. En théorie, il est possible de l’utiliser sous Windows, mais je ne peux pas vous le garantir, n’ayant pas la possibilité de tester.
Sinon ipcalc fait le job, mais en mieux 🙂
⏚ luc@odysseus: ~ % ipcalc 192.168.1.0/24
Address: 192.168.1.0 11000000.10101000.00000001. 00000000
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.1.0/24 11000000.10101000.00000001. 00000000
HostMin: 192.168.1.1 11000000.10101000.00000001. 00000001
HostMax: 192.168.1.254 11000000.10101000.00000001. 11111110
Broadcast: 192.168.1.255 11000000.10101000.00000001. 11111111
Hosts/Net: 254 Class C, Private Internet
Yo,
Moi j’ai opté pour le net : http://cric.grenoble.cnrs.fr/Administrateurs/Outils/CalculMasque/
Tcho !