calcul du masque - Windows & Software
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 , mais c'est un premier avis sur le pb
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 ?
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 ???
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
Marsh Posté le 21-02-2006 à 23:14:54
Merci ptibeur, peut tu faire cet exemple pour comprendre.
15.200.56.197/9
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!
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
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 ) :
ip = 15.200.56.197
masque=255.128.0.0
MÉTHODE CLASSLESS :
1111 1111 . 1000 0000 . 0000 0000 . 0000 0000
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.
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
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.
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.
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 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
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à
Je souhaite une bonne nuit à tous ceux qui ont réussi à me suivre
Marsh Posté le 22-02-2006 à 08:25:12
Tu telecharges Subnet calculator !!!!! et plus de probleme la reponse en 5 sec!!!!
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