Aller au contenu

Calcul d'adresses IP avec ipcalc

Mise à jour :

Configurer un réseau IP demande de la rigueur. Comment savoir rapidement si une adresse IP appartient à un sous-réseau ? Quel est le masque correspondant ? Combien d’hôtes peuvent être configurés ? Pour les administrateurs systèmes, ces calculs sont quotidiens… mais souvent fastidieux.

La gestion manuelle des adresses IP, des masques de sous-réseau, et des plages d’adresses peut entraîner des erreurs coûteuses : conflits d’adresses, mauvaise segmentation du réseau, ou pertes de connectivité. Pour y remédier, il existe un outil simple, rapide et efficace : ipcalc.

Qu’est-ce qu’ipcalc ?

ipcalc est un utilitaire en ligne de commande qui facilite le calcul et la visualisation des informations liées aux adresses IP. Il permet de vérifier la validité d’une configuration réseau, de découper des sous-réseaux adaptés à vos besoins, et d’obtenir en un coup d’œil des données précises comme l’adresse de diffusion, la plage d’hôtes utilisables, ou la classe d’adresse.

Son avantage ? Il est léger, disponible sur la plupart des distributions Linux, et s’utilise directement depuis un terminal, sans interface graphique lourde. Grâce à lui, fini les calculs à la main ou les tableaux confus : vos informations réseau sont à portée de commande.

Installation de ipcalc

ipcalc est généralement disponible dans les dépôts officiels des principales distributions Linux. L’installation est donc rapide et adaptée à votre environnement.

Sur Debian, Ubuntu et dérivés

Utilisez apt pour installer ipcalc :

Terminal window
sudo apt update
sudo apt install ipcalc

Sur CentOS, Red Hat, AlmaLinux

ipcalc est inclus dans le paquet initscripts. Pour l’installer :

Terminal window
sudo yum install initscripts

ou sur les versions plus récentes utilisant dnf :

Terminal window
sudo dnf install initscripts

Sur Arch Linux et Manjaro

Utilisez pacman :

Terminal window
sudo pacman -S ipcalc

Pour macOS via Homebrew

Si vous utilisez macOS avec Homebrew :

Terminal window
brew install ipcalc

Vérification de l’installation

Après installation, vous pouvez vérifier que ipcalc est bien fonctionnel avec :

Terminal window
ipcalc --version

Ou en testant une commande simple :

Terminal window
ipcalc 192.168.1.0/24

Vous devriez obtenir une sortie détaillant les informations réseau correspondantes.

Cette simplicité d’installation permet de l’intégrer rapidement à vos outils d’administration, que ce soit sur un serveur distant ou en local.

Comprendre les sorties de ipcalc

L’un des atouts majeurs de ipcalc est sa capacité à fournir instantanément des informations précises à partir d’une simple adresse IP. Voici comment interpréter les résultats affichés :

Adresse IP et Netmask

Terminal window
Address: 192.168.1.0
Netmask: 255.255.255.0 = 24

Address : l’adresse IP analysée. Netmask : le masque de sous-réseau en notation décimale et CIDR.

Ces données définissent le cadre du sous-réseau.

Wildcard et Network

Terminal window
Wildcard: 0.0.0.255
Network: 192.168.1.0/24

Wildcard : utile en configuration ACL (access-list) pour exprimer les bits variables. Network : identifie le réseau auquel appartient l’adresse IP, avec son masque.

Broadcast et Host Range

Terminal window
Broadcast: 192.168.1.255
HostMin: 192.168.1.1
HostMax: 192.168.1.254

Broadcast : adresse utilisée pour envoyer un message à tous les hôtes du réseau. HostMin et HostMax : plage d’adresses utilisables par les machines du réseau.

Nombre d’hôtes

Terminal window
Hosts/Net: 254

Ce champ indique combien de machines peuvent être configurées dans ce sous-réseau. Pour un /24, on a 2⁸ - 2 = 254 hôtes.

Affichage binaire

ipcalc affiche également les adresses au format binaire, utile pour comprendre les transitions de bits entre réseau et hôtes. Par exemple :

Terminal window
ipcalc 10.0.0.1/8

renvoie :

Address: 10.0.0.1 00001010.00000000.00000000.00000001
Netmask: 255.0.0.0 = 8 11111111.00000000.00000000.00000000

Cela permet de visualiser très clairement la séparation entre les bits réseau et hôtes.

Classe et masque générique Cisco

Terminal window
Class: C

Class : classification traditionnelle des adresses IP (A, B, C…), encore utilisée pour certaines configurations. Certaines versions de ipcalc affichent également le masque générique Cisco ou les prefixes VLSM, utiles en environnement Cisco.

Grâce à cette sortie structurée, ipcalc devient un outil indispensable pour diagnostiquer rapidement la configuration réseau et planifier efficacement le subnetting.

Utilisation de base de ipcalc

L’utilisation de ipcalc est intuitive : il suffit de lui passer une adresse IP et éventuellement un masque pour obtenir toutes les informations nécessaires à la configuration réseau.

Adresse IP seule

En fournissant uniquement une adresse IP, ipcalc renvoie les détails par défaut :

Terminal window
ipcalc 192.168.0.1
Address: 192.168.0.1 11000000.10101000.00000000. 00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.0.0/24 11000000.10101000.00000000. 00000000
HostMin: 192.168.0.1 11000000.10101000.00000000. 00000001
HostMax: 192.168.0.254 11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255 11000000.10101000.00000000. 11111111
Hosts/Net: 254 Class C, Private Internet

Cela retourne l’adresse IP, la classe du réseau, et le masque par défaut correspondant à cette classe.

Adresse IP avec CIDR

Pour spécifier précisément le sous-réseau, utilisez la notation CIDR :

Terminal window
ipcalc 192.168.0.1/24
Address: 192.168.0.1 11000000.10101000.00000000. 00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.0.0/24 11000000.10101000.00000000. 00000000
HostMin: 192.168.0.1 11000000.10101000.00000000. 00000001
HostMax: 192.168.0.254 11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255 11000000.10101000.00000000. 11111111
Hosts/Net: 254 Class C, Private Internet

Cette commande calcule automatiquement le masque, le broadcast, la plage d’hôtes utilisables, et le nombre d’hôtes.

Adresse IP avec masque décimal

Vous pouvez aussi indiquer un masque complet :

Terminal window
ipcalc 192.168.0.1 255.255.255.0
Address: 192.168.0.1 11000000.10101000.00000000. 00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.0.0/24 11000000.10101000.00000000. 00000000
HostMin: 192.168.0.1 11000000.10101000.00000000. 00000001
HostMax: 192.168.0.254 11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255 11000000.10101000.00000000. 11111111
Hosts/Net: 254 Class C, Private Internet

Le résultat sera identique à l’utilisation de la notation CIDR /24.

En résumé, en quelques secondes et une simple ligne de commande, ipcalc vous fournit une lecture complète de votre configuration IP. Indispensable pour éviter les erreurs dans vos fichiers de configuration ou vos scripts d’automatisation.

Options avancées de ipcalc

ipcalc propose plusieurs options en ligne de commande qui étendent ses fonctionnalités au-delà de l’analyse simple d’adresses IP. Voici les principales options à connaître pour optimiser son usage en ligne de commande ou dans des scripts.

Supprimer les couleurs ANSI

Par défaut, ipcalc utilise les codes de couleurs ANSI pour améliorer la lisibilité. Pour désactiver ces couleurs, utilisez :

Terminal window
ipcalc -n 192.168.1.1/24

ou son équivalent long :

Terminal window
ipcalc --nocolor 192.168.1.1/24

Forcer l’affichage coloré

Si votre terminal ne supporte pas les couleurs par défaut, vous pouvez les forcer :

Terminal window
ipcalc -c 192.168.1.1/24

ou :

Terminal window
ipcalc --color 192.168.1.1/24

Supprimer l’affichage binaire

Pour un affichage plus épuré, sans représentation binaire des adresses :

Terminal window
ipcalc -b 192.168.1.1/24
Address: 192.168.1.1
Netmask: 255.255.255.0 = 24
Wildcard: 0.0.0.255
=>
Network: 192.168.1.0/24
HostMin: 192.168.1.1
HostMax: 192.168.1.254
Broadcast: 192.168.1.255
Hosts/Net: 254 Class C, Private Internet

ou :

Terminal window
ipcalc --nobinary 192.168.1.1/24

Affichage de la classe réseau

Pour obtenir uniquement le masque de bits (bit-count-mask) d’une adresse IP :

Terminal window
ipcalc --class 192.168.1.1
24

Cela affiche simplement le préfixe CIDR associé.

Mode HTML (expérimental)

Une option de sortie HTML existe mais n’est pas finalisée :

Terminal window
ipcalc -h 192.168.1.1/24

ou :

Terminal window
ipcalc --html 192.168.1.1/24

À utiliser avec précaution.

Subnetting par tailles spécifiques

Pour diviser un réseau en plusieurs sous-réseaux avec un nombre précis d’hôtes :

Terminal window
ipcalc --split 50 25 25 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
1. Requested size: 50 hosts
Netmask: 255.255.255.224 = 27 11111111.11111111.11111111.111 00000
Network: 192.168.1.0/27 11000000.10101000.00000001.000 00000
HostMin: 192.168.1.1 11000000.10101000.00000001.000 00001
HostMax: 192.168.1.30 11000000.10101000.00000001.000 11110
Broadcast: 192.168.1.31 11000000.10101000.00000001.000 11111
Hosts/Net: 30 Class C, Private Internet
2. Requested size: 25 hosts
Netmask: 255.255.255.224 = 27 11111111.11111111.11111111.111 00000
Network: 192.168.1.64/27 11000000.10101000.00000001.010 00000
HostMin: 192.168.1.65 11000000.10101000.00000001.010 00001
HostMax: 192.168.1.94 11000000.10101000.00000001.010 11110
Broadcast: 192.168.1.95 11000000.10101000.00000001.010 11111
Hosts/Net: 30 Class C, Private Internet
3. Requested size: 25 hosts
Netmask: 255.255.255.224 = 27 11111111.11111111.11111111.111 00000
Network: 192.168.1.96/27 11000000.10101000.00000001.011 00000
HostMin: 192.168.1.97 11000000.10101000.00000001.011 00001
HostMax: 192.168.1.126 11000000.10101000.00000001.011 11110
Broadcast: 192.168.1.127 11000000.10101000.00000001.011 11111
Hosts/Net: 30 Class C, Private Internet
Needed size: 128 addresses.
Used network: 192.168.1.0/24.999999999999999999999999999999999999999
Unused:
192.168.1.128/25

La commande ipcalc --split 50 25 25 192.168.1.0/24 divise le réseau 192.168.1.0/24 en trois sous-réseaux pour accueillir respectivement 50, 25 et 25 hôtes :

  • Le premier sous-réseau, bien que demandé pour 50 hôtes, utilise un masque /27 qui permet 30 hôtes utilisables. C’est le plus proche possible sans dépasser les limites CIDR.
  • Le deuxième sous-réseau commence à 192.168.1.64/27 et offre également 30 adresses, suffisant pour les 25 hôtes requis.
  • Le troisième sous-réseau débute à 192.168.1.96/27, couvrant à nouveau 30 adresses utilisables.

Enfin, après l’allocation de ces trois sous-réseaux, un espace reste disponible : le bloc 192.168.1.128/25, qui peut accueillir 126 hôtes. ipcalc optimise ainsi l’usage du réseau tout en respectant les contraintes d’alignement des adresses IP.

Décomposition d’une plage d’adresses

L’option --range permet de décomposer une plage IP en sous-réseaux :

Terminal window
ipcalc --range 192.168.1.0-192.168.1.255
deaggregate 192.168.1.0 - 192.168.1.255
192.168.1.0/24

Utile pour identifier automatiquement les segments de réseau compatibles.

Conclusion

ipcalc est un outil puissant et polyvalent pour les administrateurs systèmes et réseaux. Que vous soyez novice ou expert, il vous permet de simplifier la gestion de vos adresses IP et de vos sous-réseaux. Grâce à sa syntaxe simple et ses nombreuses options, vous pouvez rapidement obtenir des informations précises sur vos configurations réseau.

Plus d’informations

Pour plus de détails sur les options et fonctionnalités de ipcalc, vous pouvez consulter :