Aller au contenu
Réseaux medium

Calcul d'adresses IP avec ipcalc

12 min de lecture

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.

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.

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.

Utilisez apt pour installer ipcalc :

Fenêtre de terminal
sudo apt update
sudo apt install ipcalc

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

Fenêtre de terminal
sudo yum install initscripts

ou sur les versions plus récentes utilisant dnf :

Fenêtre de terminal
sudo dnf install initscripts

Utilisez pacman :

Fenêtre de terminal
sudo pacman -S ipcalc

Si vous utilisez macOS avec Homebrew :

Fenêtre de terminal
brew install ipcalc

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

Fenêtre de terminal
ipcalc --version

Ou en testant une commande simple :

Fenêtre de terminal
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.

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 :

Fenêtre de terminal
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.

Fenêtre de terminal
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.

Fenêtre de terminal
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.

Fenêtre de terminal
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.

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

Fenêtre de terminal
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.

Fenêtre de terminal
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.

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.

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

Fenêtre de terminal
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.

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

Fenêtre de terminal
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.

Vous pouvez aussi indiquer un masque complet :

Fenêtre de terminal
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.

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.

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

Fenêtre de terminal
ipcalc -n 192.168.1.1/24

ou son équivalent long :

Fenêtre de terminal
ipcalc --nocolor 192.168.1.1/24

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

Fenêtre de terminal
ipcalc -c 192.168.1.1/24

ou :

Fenêtre de terminal
ipcalc --color 192.168.1.1/24

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

Fenêtre de terminal
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 :

Fenêtre de terminal
ipcalc --nobinary 192.168.1.1/24

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

Fenêtre de terminal
ipcalc --class 192.168.1.1
24

Cela affiche simplement le préfixe CIDR associé.

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

Fenêtre de terminal
ipcalc -h 192.168.1.1/24

ou :

Fenêtre de terminal
ipcalc --html 192.168.1.1/24

À utiliser avec précaution.

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

Fenêtre de terminal
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.

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

Fenêtre de terminal
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.

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.

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