Expandeur de plage IPv4

Développez une plage IPv4 ou un CIDR en la liste complète des adresses, avec un compteur en direct. Utile pour les règles de pare-feu et les inventaires.

Transformez une plage en liste. Donnez une plage début-fin (192.168.1.1-192.168.1.20) ou un CIDR (10.0.0.0/28) et obtenez chaque adresse qu'elle contient, avec un compteur. Les très grandes plages sont plafonnées pour votre navigateur. S'exécute localement.

Les plages de plus de 10 000 adresses n'affichent que les 10 000 premières ainsi qu'un compteur.

Transformer une plage en liste

Deux façons de décrire le même intervalle

Un bloc CIDR et une paire début-fin décrivent tous deux une suite contiguë d'adresses, mais ils ne sont pas également expressifs. Le CIDR ne peut représenter qu'un bloc dont la taille est une puissance de deux et dont l'adresse de base est alignée sur cette taille — 10.0.0.0/30 est valide, 10.0.0.1/30 décrit le même bloc que 10.0.0.0/30 car les bits de poids faible sont masqués. Une plage arbitraire comme 192.168.0.254-192.168.1.2 ne peut pas s'écrire comme un seul CIDR ; il en faut trois. Cet outil accepte les deux formes et aplatit l'une ou l'autre en une liste explicite. C'est utile précisément quand le consommateur de la liste ne parle pas CIDR : listes blanches sur d'anciens équipements, colonnes de tableur, boucles shell, et vérifications rapides qu'une plage couvre bien ce que vous croyez.

Pourquoi les cas aux limites comptent

Le bug courant des expandeurs faits main est de traiter l'adresse comme quatre nombres indépendants et d'incrémenter uniquement le dernier octet. Cela fonctionne jusqu'à ce que la plage franchisse une limite, où 192.168.0.255 est suivi de 192.168.0.256 au lieu de 192.168.1.0. Convertir en entier 32 bits, incrémenter, puis reconvertir rend le roulement automatique et est la seule approche qui vaut le coup. L'autre piège est le signe. Dans les langages où les opérations bit à bit produisent des entiers signés de 32 bits, 255.255.255.255 ressort en -1 à moins de le forcer en non signé. Toute adresse au-dessus de 127.x.x.x est concernée, donc le bug se cache pendant les tests si vous n'essayez que des plages RFC 1918 commençant par 10 ou 192.

Pourquoi la sortie est plafonnée

Un /8 contient 16,7 millions d'adresses. Matérialiser cela en texte représente environ 250 Mo, ce qui figera l'onglet bien avant la fin. La sortie ici est plafonnée et le total réel est reporté séparément, pour que vous puissiez voir la vraie taille de la plage sans demander au navigateur de la rendre. Si vous devez vraiment itérer un très grand bloc, faites-le en flux sur le serveur plutôt qu'en liste dans une zone de texte.

Note open-source : implémenté en JavaScript vanilla sans bibliothèque tierce.

FAQ

Quels formats d'entrée sont acceptés ?
Soit la notation CIDR comme 10.0.0.0/29, soit une adresse de début et de fin explicite séparée par un tiret ou un espace, par exemple 10.0.0.1 - 10.0.0.9.
Pourquoi la sortie est-elle plafonnée ?
Lister un /8 entier représenterait plus de seize millions de lignes et figerait l'onglet. Le plafond garde la page réactive tandis que le champ compteur rapporte la vraie taille de la plage.
La liste inclut-elle les adresses réseau et de diffusion ?
Oui. L'expandeur énumère littéralement chaque adresse de la plage, donc vous obtenez le bloc complet plutôt que seulement les adresses hôtes utilisables.
Pourquoi ma plage a-t-elle été rejetée ?
Le plus souvent l'adresse de fin est numériquement inférieure à celle de début. L'outil les compare comme des entiers 32 bits, donc 10.0.0.5 vers 10.0.0.1 n'est pas une plage valide.
Puis-je coller le résultat dans une règle de pare-feu ?
Oui, c'est la raison habituelle d'étendre une plage. La plupart des outils acceptent une liste séparée par des retours à la ligne, bien qu'un bloc CIDR soit plus compact partout où il est supporté.
L'expansion gère-t-elle le roulement d'octet ?
Oui. L'arithmétique s'appuie sur l'entier 32 bits, donc une plage qui passe de 10.0.0.255 à 10.0.1.0 continue correctement.