## Activité : Calcul d'adresses IP avec la méthode magique

## Objectifs
- Comprendre le calcul des adresses IP en sous-réseaux.
- Appliquer la méthode magique pour déterminer l’adresse réseau et l’adresse de broadcast.

## Rappel sur les notions essentielles
- Une **adresse IP** est composée de 4 octets, par exemple : `192.168.1.42`.
- Un **masque de sous-réseau** détermine la partie réseau et la partie hôte d’une IP.
- L’**adresse réseau** identifie le sous-réseau.
- L’**adresse de broadcast** est utilisée pour envoyer un message à toutes les machines du sous-réseau.

## La méthode magique
La **méthode magique** est une technique simple pour calculer rapidement l’adresse réseau et l’adresse de broadcast.

### Exemple :

Soit l'adresse IP `192.168.1.42/26`.

### Étape 1 : Trouver l'incrément magique
L’incrément magique est donné par :
```text
256 - Valeur du premier octet à 0 dans le masque
```

Le masque `/26` correspond à `255.255.255.192`, donc l’octet qui n’est pas à `255` est `192`.

Calcul de l’incrément magique :
```text
256 - 192 = 64
```

### Étape 2 : Trouver l’adresse réseau
On prend l’octet variable de l’IP (`42`) et on cherche le **multiple de 64 le plus proche sans le dépasser**.

Les multiples de 64 sont : `0, 64, 128, 192`.
Le plus proche inférieur à `42` est `0`.

Donc, l’**adresse réseau** est :
```text
192.168.1.0
```

### Étape 3 : Trouver l’adresse de broadcast
L’adresse de broadcast est **l’adresse réseau + l’incrément magique - 1**.

```text
192.168.1.0 + 64 - 1 = 192.168.1.63
```

Donc, l’**adresse de broadcast** est :
```text
192.168.1.63
```

---

### La méthode du prof

Si vous n'êtes pas à l'aise avec le chiffre magique, une autre solution existe :

### Méthode de calcul de l'adresse réseau en binaire

1. **Convertir l'adresse IP et le masque de sous-réseau en binaire** :

   - Par exemple, pour l'adresse IP

      

     ```
     192.168.1.42
     ```

      

     et le masque

      

     ```
     255.255.255.192
     ```

      

     - IP en binaire : `11000000.10101000.00000001.00101010`
     - Masque en binaire : `11111111.11111111.11111111.11000000`

2. **Effectuer une opération ET (AND) bit à bit** :

   - Multiplier chaque bit de l'adresse IP par le bit correspondant du masque.
   - Cela revient à conserver les bits de l'adresse IP là où le masque a des `1`, et à mettre des `0` ailleurs.

3. **Convertir le résultat en décimal** :

   - Le résultat de l'opération ET donne l'adresse réseau en binaire.
   - Convertir cette adresse binaire en décimal pour obtenir l'adresse réseau.

**Pour trouver l'adresse de broadcast, la méthode est légèrement différente de celle utilisée pour trouver l'adresse réseau** :

### Méthode de calcul de l'adresse de broadcast en binaire

1. **Convertir l'adresse IP et le masque de sous-réseau en binaire** :
   - Comme précédemment, convertissez l'adresse IP et le masque en binaire.
2. **Inverser le masque de sous-réseau** :
   - Changez tous les `1` en `0` et tous les `0` en `1` pour obtenir le masque de sous-réseau inversé.
3. **Effectuer une opération OU (OR) bit à bit** :
   - Ajoutez chaque bit de l'adresse IP au bit correspondant du masque inversé.
   - Cela revient à conserver les bits de l'adresse IP là où le masque inversé a des `0`, et à mettre des `1`ailleurs.
4. **Convertir le résultat en décimal** :
   - Le résultat de l'opération OU donne l'adresse de broadcast en binaire.
   - Convertir cette adresse binaire en décimal pour obtenir l'adresse de broadcast.

### Exemple

Pour `192.168.1.42` avec le masque `255.255.255.192` :

- **IP en binaire** : `11000000.10101000.00000001.00101010`
- **Masque en binaire** : `11111111.11111111.11111111.11000000`
- **Masque inversé** : `00000000.00000000.00000000.00111111`
- **Résultat de l'OU** : `11000000.10101000.00000001.00111111`
- **Adresse de broadcast en décimal** : `192.168.1.63`

------

## Exercices 

###  Exercice 1 : Application directe
Déterminez l’adresse réseau et l’adresse de broadcast des adresses suivantes :
1. `10.0.5.150/20`
2. `172.16.100.200/22`
3. `192.168.0.250/27`

