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

Messages postés
4
Date d'inscription
vendredi 21 février 2014
Dernière intervention
21 février 2014
- - Dernière réponse : jordane45
Messages postés
23593
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
- 21 févr. 2014 à 11:05
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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
23593
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
1
Merci
-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.

Merci jordane45 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de jordane45
Messages postés
23593
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
1
Merci
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...

Merci jordane45 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de jordane45
Messages postés
23593
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
0
Merci
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



Commenter la réponse de jordane45
Messages postés
4
Date d'inscription
vendredi 21 février 2014
Dernière intervention
21 février 2014
0
Merci
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
jordane45
Messages postés
23593
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
-
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
WhitRose
Messages postés
4
Date d'inscription
vendredi 21 février 2014
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) !!
Commenter la réponse de WhitRose
Messages postés
4
Date d'inscription
vendredi 21 février 2014
Dernière intervention
21 février 2014
0
Merci
Merci beaucoup jordane45 :)
Commenter la réponse de WhitRose

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.