Parcourir une plage d'adresses IP sous script shell [Résolu]

Signaler
Messages postés
4
Date d'inscription
vendredi 21 février 2014
Statut
Membre
Dernière intervention
21 février 2014
-
Messages postés
32915
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2021
-
Bonjour,

En script shell, je cherche une fonction (boucle) qui permet à partir d'un masque d'adresse IP donne comme sortie tous les adresses IP appropriées, par exemple on donne comme entrer 111.22.33.224/28 on aura comme sortie les adresses IP de 111.22.33.225 vers 111.22.33.238 ?

MERCI

5 réponses

Messages postés
32915
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2021
350
-Tu split ta string pour récupérer le 28
-Tu split ton IP pour récupérer le dernier paquet -> 224
-Tu boucle de 1 à 28 et tu ajoutes +1 à ton paquet..
224 ... 225 ... 226 .. etc.. que tu concatene avec les trois autres paquets de ton IP pour recréer une string correspondant à ton IP.

Edit : Je viens de voir que le /28 c'etait le sous réseau....
Masque de sous-réseau : 255.255.255.240
Soit 14 possibilités....

Tu peux donc utiliser la méthode du chiffre magique ^^
http://fr.openclassrooms.com/informatique/cours/calculer-une-plage-d-adresses-avec-la-methode-magique/qu-est-ce-que-la-methode-magique-2

Tu peux aussi t'inspirer de ce site :
http://linuxtricks.asso-linux-online.fr/wiki/masque-et-masque-inverse-wildcard-mask
Qui explique comment, à partir du sous réseau, connaitre le masque..et donc connaitre la plage d'IP.
Messages postés
32915
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2021
350
En cherchant un peu je viens de tomber la dessus :

http://stackoverflow.com/questions/16986879/bash-script-to-list-all-ips-in-prefix

Je pense que ça correspond à ce que tu cherches...

Messages postés
32915
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2021
350
Bonjour,

Tu nous donnes comme exemple :
par exemple on donne comme entrer 111.22.33.224/28
on aura comme sortie les adresses IP de 111.22.33.225 vers 111.22.33.238
Hors, ta question est relative à
à partir d'un masque d'adresse IP

Là visiblement tu n'utilises pas les masques d'adresse IP.. tu ne fais qu'incrémenter x fois ton ip initiale...

Si tu veux faire une boucle et incrémenter ta variable... tu peux jeter déjà un oeil ici :
http://www.tuteurs.ens.fr/unix/shell/boucle.html#s2_3



Messages postés
4
Date d'inscription
vendredi 21 février 2014
Statut
Membre
Dernière intervention
21 février 2014

Bonjour,

Plus d'explication: Je veut que la fonction prend comme paramètre 111.22.33.224/28 et la sortie est d'afficher la plage d'adresses (les adresses IP un par un). :)

merci
Messages postés
32915
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2021
350
C'est ce qu'il me semblait..

Donc regarde le lien que je t'ai proposé :
Là visiblement tu n'utilises pas les masques d'adresse IP.. tu ne fais qu'incrémenter x fois ton ip initiale...

Si tu veux faire une boucle et incrémenter ta variable... tu peux jeter déjà un oeil ici :
http://www.tuteurs.ens.fr/unix/shell/boucle.html#s2_3
Messages postés
4
Date d'inscription
vendredi 21 février 2014
Statut
Membre
Dernière intervention
21 février 2014

Le problème est comment incrémenter x, car elle se calcule directement à partir de /28 (en cherchant tous les combinaisons en binaire de 4 bits de l'identité hôte et les convertir en décimale et enfin on trouvera à chaque fois le dernier octet) !!
Messages postés
4
Date d'inscription
vendredi 21 février 2014
Statut
Membre
Dernière intervention
21 février 2014

Merci beaucoup jordane45 :)