calcul du masque

calcul du masque - Windows & Software

Marsh Posté le 21-02-2006 à 21:22:05    

bonjour,
 
voilà, je voudrais savoir suivant une ip donné, du quantième réseau il s'agit.
c'est pas clair ? bon un exemple simple:
 
192.168.0.130/24 ici la machine est la deuxième machine (130) du deuxièmeréseau (128) ! ok
 
bon mais comment calculer facilement un exemple qui parrait complexe comme celui ci
 
15.200.56.197/8 ?
 
Y'a t'il une astuce pour trouver rapidement le quantième réseau ?
 
si qq'un a une piste de réflexion même incomplete qu'il ne se gène surtout pas


Message édité par startx25 le 21-02-2006 à 21:24:57
Reply

Marsh Posté le 21-02-2006 à 21:22:05   

Reply

Marsh Posté le 21-02-2006 à 21:28:07    

ça pourrait se programmer je pense :)  
 
d'abord définir si c'est un classe A, B ou C, sous-adressé ou non => choix de la méthode de calcul en conséquence  
ensuite calculer le nombre d'adresses par (sous-)réseau  
avec ça on peut voir les adresses de début de chaque (sous-)réseau.  
 
et avec une division euclidienne récupérer le quotient et le reste, on sait avec le quotient le n° de réseau et le reste on sait le n° d'adresse.  
 
 
Là comme ça je sais pas si ça marche, c'est ptetre une grosse connerie [:tinostar], mais c'est un premier avis sur le pb

Reply

Marsh Posté le 21-02-2006 à 21:36:23    

merci pour ta réponse...
 
en fait définir la classe n'est pas nécéssaire si on s'en tient au masque de sous réseau uniquemnt (classless).
 
ok pour calculer le nombre d'@ par sous réseau
mais après ta division euclidienne là je pige pas (à part les énumérer tous les sous réseau...je vois pas..)
 
y'a surement un moyen simple de calcul ?

Reply

Marsh Posté le 21-02-2006 à 21:40:29    

la classe du réseau va indirectement intervenir je pense étant donné que la valeur de ton masque devra être comparé au 1er octet afin de déterminer le combientième sous réseau il s'agit...
Après , je ne suis pas une doué de la prog, mais une recherche avec incrémentation afin de définir avec précision LE combientième réseau...
 
La division euclidienne ??? Il s'agit de l'équivalent du modulo ???

Reply

Marsh Posté le 21-02-2006 à 23:02:26    

oui, modulo et division euclidienne c'est dans le même genre :)  
 
A = DQ+R (division euclidienne, A = Diviseur * Quotient + reste)
A est congru à Q modulo D ;)

Reply

Marsh Posté le 21-02-2006 à 23:14:54    

Merci ptibeur, peut tu faire cet exemple pour comprendre.
 
15.200.56.197/9
 
 

Reply

Marsh Posté le 21-02-2006 à 23:22:02    

bah oui mais non, /9 ça marche pas comme exemple !  
 
9 en binaire c'est 1001  
un masque c'est de la forme :  
11111111000000000
 
avec tous les 1 à gauche qui codent la partie "numéro de réseau" et tous les 0 à droite qui codent la partie "numéro de machine"  
 
avec 9 ça marche pas :heink!

Reply

Marsh Posté le 21-02-2006 à 23:38:50    

mais non, c'est la notation "CIDR" du masque de sous réseau à 9 bits à 1
 
un /9 = 255.128.0.0 (9 bits à 1 et 23 à 0)
un /24 = 255.255.255.0 (24 bits à 1 et 8 à 0)
 
je réécris mon exemple :
 
ip = 15.200.56.197
masque=255.128.0.0
 

Reply

Marsh Posté le 22-02-2006 à 00:05:34    

hou putaing, dsl j'étais pas réveillé :D

Reply

Marsh Posté le 22-02-2006 à 00:27:43    

Bon déjà dans ton énoncé de départ, ya problème. Tu dis :  
 
192.168.0.130/24 ici la machine est la deuxième machine (130) du deuxièmeréseau (128) ! ok
Bah non, c'est la 130 eme machine du premier réseau 192.168.0.0  
Si tu mets un masque /25, là je suis d'accord et ce sera la 2ème machine du réseau 192.168.0.128  
Mais là je suis pas d'accord sur le "deuxième réseau" car c'est pas classless. En "classless /25", 192.168.0.128 est le réseau n°25251841 :/  
 
Faudrait partir sur le fait qu'on connait le classful, donc que les classe A vont de 0.0.0.0 à 126.0.0.0/8 inclus, les B de 128.0.0.0 à 191.255.0.0/16 inclus, et les C de 192.0.0.0 à 223.255.255.0/24 inclus.  
 
D'où la différence de calcul : classless ou classful ?  
 
 
 
 
Ensuite ton cas particulier (t'as bien choisi, on va avoir de gros chiffres [:huit]) :  
ip = 15.200.56.197  
masque=255.128.0.0  
 
 
MÉTHODE CLASSLESS :  
 

  • Donc on a le masque  :  

1111 1111 . 1000 0000 . 0000 0000 . 0000 0000  
 

  • 15.200.56.197  

En binaire et groupe de 8 bits : 00001111 . 11001000 . 00111000 . 11000101
On dégage les 9 premiers bits qui sont ceux du réseau, le reste : 10010000011100011000101 = 4733125
Donc 15.200.56.197 est l'adresse n°4733125+1 (on compte aussi l'adresse 0) du sous-réseau.  
 

  • Maintenant le numéro de réseau :  

On reprend les 9 premiers bits qu'on a dégagés tout à l'heure : 000011111 = 31  
Ton réseau est donc le 31+1ème (on compte le réseau 0)  
Le réseau en lui même c'est 00001111 . 1000 0000 . 0000 0000 . 0000 0000 = 15.128.0.0
 

  • Au final : C'est l'adresse 4733126 du réseau 32, soit l'adresse machine 4733125 du réseau 15.128.0.0


Message édité par ptibeur le 22-02-2006 à 03:24:01
Reply

Marsh Posté le 22-02-2006 à 00:27:43   

Reply

Marsh Posté le 22-02-2006 à 03:11:37    

MÉTHODE CLASSFUL :  
 
/9 est supérieur ou égal à /8 mais inférieur à /16, c'est donc un classe A que l'on découpe.  
 

  • Donc on a le masque  :  

1111 1111 . 1000 0000 . 0000 0000 . 0000 0000  
 
On découpe un classe A, on peut déjà dégager les 8 premiers bits qui sont toujours à 1 pour un classe A.  
Il reste : 1000 0000 . 0000 0000 . 0000 0000  
On dégage tous les bits de la partie "adresses machines".  
Il reste : 1
1 bit donc seulement 2 sous-réseaux dans ton classe A, suivant ce bit qui sera à 0 ou 1.  
 

  • On s'attaque à l'adresse maintenant :  


15.200.56.197  
En binaire et groupe de 8 bits : 00001111 . 11001000 . 00111000 . 11000101  
On remarque que le 9ème bit est à 1, c'est donc une adresse du second sous-réseau de ce classe A.  
On dégage les 9 premiers bits qui sont ceux du réseau, le reste : 10010000011100011000101 = 4733125
Donc 15.200.56.197 est l'adresse n°4733125+1 (on compte aussi l'adresse 0) du sous-réseau.  
 

  • On finit par l'adresse du réseau  :  

On reprend les 9 premiers bits qu'on a dégagés tout à l'heure : 0000 1111 1  
On complète par des 0 pour avoir la première adresse de ce sous-réseau :  00001111 . 1000 0000 . 0000 0000 . 0000 0000 = 15.128.0.0
Et on met le 9ème bit à 0 pour savoir quel classe A on a découpé : 00001111 . 0000 0000 . 0000 0000 . 0000 0000 = 15.0.0.0
 

  • Au final :  

C'est l'adresse n°4733126 (donc machine n°4733125)  
Le sous-réseau est le deuxième, c'est 15.128.0.0  
Le classe A découpé est 15.0.0.0  
 
 
Voilà [:kunks]  
 
Je souhaite une bonne nuit à tous ceux qui ont réussi à me suivre [:tinostar]


Message édité par ptibeur le 22-02-2006 à 03:19:33
Reply

Marsh Posté le 22-02-2006 à 08:25:12    


Tu telecharges Subnet calculator !!!!! et plus de probleme la reponse en 5 sec!!!!


---------------
Z87-Plus 4670K Ares 2*4Go Asus 770 DCU2 840 pro 256 RM750
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed