25-NSIJ1PO1-1

  1. Destination Prochain saut Distance
    R2 R2 0
    R3 R2 1
    R4 R4 0
    R5 R5 0
    R6 R5 1
  2. La route est LAN1 → R1 → R5 → R6 → Internet.

  3. Destination Prochain saut Distance
    R2 R2 10
    R3 R2 11
    R4 R2 12
    R5 R2 13
    R6 R2 14
  4. La route est LAN1 → R1 → R2 → R3 → R4 → R5 → R6 → Internet.

  5. La route est LAN1 → R1 → R5 → R6 → Internet de distance 101.

  6. Machine Masque Réseau Réseau (décimal)
    11000000 11111111 11000000 192
    10101000 11000000 10000000 128
    00000001 00000000 00000000 0
    01100100 00000000 00000000 0
  7. Réseau Masque Complément Broadcast Broadcast (décimal)
    11000000 11111111 00000000 11000000 192
    10000000 11000000 00111111 10111111 191
    10000000 00000000 11111111 11111111 255
    10000000 00000000 11111111 11111111 255
    • L'adresse du réseau LAN1 : 172.16.0.0
    • L'adresse de broadcast : 172.16.255.255
    • le nombre total d'adresses disponibles : 216 – 2 = 65534.
  8. def masquer(self, masque: str) -> str:
        tmp = []
        ip = self.octets()
        crible = IPv4(masque).octets()
        for i in range(4):
            tmp.append(str(ip[i] & crible[i]))
        return '.'.join(tmp)
    
  9. def adresse_suivante(self, adresse_max: str) -> str:
        assert self.adresse < adresse_max
        liste_courante = self.octets()
        liste_suivante = list()
        retenue = 1
        for index in range(4):
            somme = liste_courante[3 - index] + retenue
            valeur, retenue = somme % 256, somme // 256
            liste_suivante = [str(valeur)] + liste_suivante
        return '.'.join(liste_suivante)