Calculateur de sous-réseau
La calculatrice de sous-réseaux part d'un réseau en notation CIDR — ou d'une adresse accompagnée de son masque en décimal — et en déduit tout ce qui en découle : l'adresse de réseau et celle de diffusion, le masque et son wildcard, le premier et le dernier hôte utilisables, le nombre total d'adresses et la zone de résolution DNS inverse. Elle traite aussi bien l'IPv4 que l'IPv6, et sait découper un bloc en sous-réseaux égaux du préfixe que vous demandez.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
L'arithmétique qu'on ne devrait plus faire de tête
Toute question de réseau qui commence par une barre oblique finit en binaire : combien d'hôtes tiennent dans un /26, quelle est l'adresse de diffusion, où s'arrête un sous-réseau et où commence le suivant. Le calculer de tête est un détour de deux minutes qui se termine mal presque aussi souvent qu'il se termine bien, et ici une erreur de calcul devient une règle de pare-feu qui couvre, en silence, des machines qu'elle ne devait pas toucher. Envoyez le bloc, recevez le tableau complet : réseau, masque, wildcard, diffusion, premier et dernier hôte utilisables, et le nombre d'adresses.
Trois façons d'écrire le même réseau
L'outil accepte le réseau tel qu'on le recopie réellement. Le CIDR classique — 192.168.1.0/24 — est la forme la plus évidente. Une adresse suivie de son masque en décimal, telle qu'elle apparaît dans la configuration d'une interface, fonctionne aussi : 192.168.1.10 255.255.255.0. Une adresse seule est acceptée également, et lue comme un hôte unique. Dans les trois cas, l'adresse est d'abord ramenée à son réseau : 10.0.5.37/20 répond donc sur 10.0.0.0/20, ce qui correspond presque toujours à la vraie question posée.
Les cas limites que presque tout le monde calcule mal
Un /31 n'est pas un /30 raté. Selon le RFC 3021, c'est une liaison point à point dont les deux adresses sont utilisables et qui ne possède aucune adresse de diffusion ; un outil qui y annonce zéro hôte utilisable applique une règle qui a cessé d'être vraie en l'an 2000. Un /32 désigne une adresse unique, sans réseau ni diffusion. Et un masque dont les bits à un ne sont pas contigus — 255.255.0.255 — n'est pas un masque valide : il est rejeté plutôt que de produire, en silence, un résultat plausible mais faux. Ces trois cas sont précisément ceux où les calculatrices se contredisent entre elles ; c'est donc là que celle-ci se montre explicite.
L'IPv6 sans arrondis
Un bloc IPv6 ne tient pas dans les nombres avec lesquels comptent la plupart des outils : un seul /64 contient plus de dix-huit trillions d'adresses, bien au-delà du seuil où la virgule flottante commence à arrondir. Ici, l'arithmétique se fait sur des entiers exacts et le total est renvoyé sous forme de chaîne de caractères, afin que la dernière adresse d'une plage soit vraiment celle qui la clôt. Les adresses reviennent sous leur forme canonique — minuscules, zéros compressés une seule fois — ainsi que sous leur forme entièrement développée, utile quand il faut en comparer deux à l'œil nu.
Découper un bloc
Demandez un préfixe plus long et le bloc revient divisé en sous-réseaux égaux, chacun avec sa propre plage : un /24 découpé en /26 en donne quatre ; un /16 découpé en /24, deux cent cinquante-six. C'est l'étape où la planification sur le papier se trompe le plus souvent, car les frontières ne tombent pas là où l'intuition les place. Une réponse contient au maximum 1024 sous-réseaux, ce qui garde le résultat lisible ; au-delà, mieux vaut découper en deux passes.
Cas d’usage
Planifier une plage d'adresses avant de configurer quoi que ce soit
Camille Moreau décide comment répartir un bloc pendant que c'est encore une décision, et non un réseau déjà en service qu'il faudrait renuméroter.
Vérifier une règle de pare-feu ou une ACL
Avant de la publier, Thomas Rousseau confirme exactement quelles adresses une règle couvre, plutôt que de le découvrir après qu'un collègue a perdu l'accès.
Comprendre un réseau hérité
Nadia Benali reprend la configuration d'une ancienne interface et retrouve, à partir de l'adresse et du masque, la plage, le nombre d'hôtes et la zone inverse qu'ils impliquent.
Valider une entrée dans ses propres outils
Le Studio Lumen SAS appelle l'API pour vérifier qu'un bloc fourni par un client est bien formé avant qu'il n'atteigne son système de provisionnement.
Questions fréquentes
Combien cela coûte-t-il ?
Rien sur cette page, dans votre navigateur : aucune donnée n'est envoyée nulle part. Par l'API, le tarif est de $0.002 par requête, débité de votre solde.
Mes données de réseau sortent-elles de ma machine ?
Non, quand vous utilisez l'outil sur cette page : le calcul se déroule entièrement dans votre navigateur. Par l'API, le bloc envoyé est traité puis aussitôt écarté ; rien n'est conservé.
L'IPv6 est-il pris en charge ?
Oui. Les blocs IPv6 sont calculés avec une arithmétique entière exacte, et le nombre total d'adresses est renvoyé sous forme de chaîne pour qu'aucun arrondi ne s'y glisse.
Pourquoi un /31 affiche-t-il deux hôtes utilisables ?
Parce que le RFC 3021 définit le /31 comme une liaison point à point où les deux adresses sont utilisables et où il n'existe aucune adresse de diffusion. L'ancienne règle qui consiste à soustraire deux ne s'applique pas ici.
Puis-je découper un réseau en sous-réseaux plus petits ?
Oui. Indiquez le préfixe voulu et chaque sous-réseau obtenu revient avec sa propre plage. Une réponse renvoie au maximum 1024 sous-réseaux.
Que se passe-t-il avec un masque invalide ?
Il est rejeté, avec une explication. Un masque dont les bits à un ne sont pas contigus, comme 255.255.0.255, n'est pas un masque valide, et renvoyer un résultat pour lui serait pire que renvoyer une erreur.
Pourquoi certains réseaux n'ont-ils pas de zone inverse ?
La zone in-addr.arpa ne tombe que sur un octet entier : /8, /16 ou /24. Tout autre cas exige la délégation prévue par le RFC 2317 ; donner un seul nom de zone induirait donc en erreur, et aucun n'est fourni.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/dev/subnet \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/subnet", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/subnet",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/subnet", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/subnet", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"items": [
"valor-1",
"valor-2"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.subnet",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_subnets | 1024 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |