http chettibi emonsite com TP N 3 ADRESSAGE
http: //chettibi. e-monsite. com/ TP N° 3 : ADRESSAGE IP q @ IP q LES CLASSES D’@ IP
BLOC D’ADRESSES v Bloc d’adresses IP = des @ IP consécutives v à un sous-réseau est associé un bloc d’adresse IP avec un masque 205. 16. 37. 32 / 28
Première adresse = @ sous-réseau (réservée) Dernière adresse = @ Diffusion dans le sous-réseau (réservée) Entre les deux: des @ attribuables aux hôtes (machines)
MASQUE • Il permet de délimiter les adresses appartenant au même bloc ( sous-réseau) • Un masque tient Sur 32 bits dont les plus à gauches sont des 1 Et les plus à droite sont à 0. Dans notre exemple (masque en notation décimale): 255. 240
EN BINAIRE 11111111. 11110000 Les 1 : NET_ID (Identificateur du réseau) Les 0 : HOST_ID (Identificateur d’hôte) Combien d’adresses sont disponibles sur ce réseau ? 2^4 = 16 { 0000 …………. 1111}
COMMENT EXPLOITER LE MASQUE ? Pour obtenir l'adresse réseau, il suffit de faire un ET logique entre une adresse IP du bloc avec le masque (format binaire).
Une @IP : 205. 16. 37. 39 11001101000000100100111 Masque: 255. 240 11111111. 11110000
COMMENT EXPLOITER LE MASQUE ? Pour obtenir l'adresse réseau, il suffit de faire un ET logique entre une adresse IP du bloc avec le masque (format binaire). 205. 16. 37. 32
COMMENT EXPLOITER LE MASQUE ? Pour obtenir l'adresse de diffusion, il suffit de faire un OU logique entre une adresse IP du bloc et le complément du masque. 205. 16. 37. 47
EN JAVA… En plus des opérations arithmétiques, Java offre ce que l'on appelle des opérations bit à bit travaillant sur les séquences de bits représentant les entiers
APPLICATION Créer un programme avec une GUI qui ressemble à:
TESTER LES OCTETS : @IP ET LE MASQUE AUSSI…
FENÊTRE DIALOG Design this Container
AJOUTER DES COMPOSANTS À DIALOG + Label + Button
CODE QUI PERMET DE CALCULER @ RÉSEAU private void j. Button 1 Mouse. Clicked(java. awt. event. Mouse. Event evt) { int aip 1, msq 1, aip 2, msq 2, aip 3, msq 3, aip 4, msq 4; aip 1 = Integer. parse. Int(j. Text. Field 1. get. Text()); msq 1= Integer. parse. Int(j. Text. Field 5. get. Text()); j. Text. Field 9. set. Text(String. value. Of(aip 1&msq 1));
CODE QUI PERMET DE CALCULER @ RÉSEAU aip 2=Integer. parse. Int(j. Text. Field 2. get. Text()); msq 2=Integer. parse. Int(j. Text. Field 6. get. Text()); j. Text. Field 10. set. Text(String. value. Of(aip 2&msq 2));
CODE QUI PERMET DE CALCULER @ RÉSEAU aip 3=Integer. parse. Int(j. Text. Field 3. get. Text()); msq 3=Integer. parse. Int(j. Text. Field 7. get. Text()); j. Text. Field 11. set. Text(String. value. Of(aip 3&msq 3)); aip 4=Integer. parse. Int(j. Text. Field 4. get. Text()); msq 4=Integer. parse. Int(j. Text. Field 8. get. Text()); j. Text. Field 12. set. Text(String. value. Of(aip 4&msq 4));
CE QU’ON OBTIENT
CODE QUI PERMET DE CALCULER @DIFFUSION j. Text. Field 13. set. Text(String. value. Of(aip 1 | (256 + (~ msq 1)))); j. Text. Field 14. set. Text(String. value. Of(aip 2|(256+(~msq 2)))); j. Text. Field 15. set. Text(String. value. Of(aip 3|(256+(~msq 3)))); j. Text. Field 16. set. Text(String. value. Of(aip 4|(256+(~msq 4))));
AJOUTER LE TEST // placer tout les get en haut …. . if ((aip 1 > 255)||(aip 1<0)||(aip 2> 255)||(aip 2<0)||(aip 3> 255)||(aip 3<0)||(aip 4> 255)||(aip 4<0)||(msq 1 > 255)||(msq 1<0)||(msq 2> 255)||(msq 2<0)||(msq 3> 255)||(msq 3<0)||(msq 4> 255)||(msq 4<0)) { j. Dialog 1. set. Visible(true); }else{ // reste du code }
CODE POUR LE BOUTON RECOMMENCER private void j. Button 2 Mouse. Clicked(java. awt. event. Mouse. Event evt) { j. Text. Field 1. set. Text(""); j. Text. Field 2. set. Text(""); j. Text. Field 3. set. Text(""); j. Text. Field 4. set. Text(""); j. Text. Field 5. set. Text(""); j. Text. Field 6. set. Text(""); j. Text. Field 7. set. Text(""); j. Text. Field 8. set. Text(""); j. Dialog 1. set. Visible(false); }
- Slides: 22