Tp n 3 - E

publicité
http://chettibi.e-monsite.com/
TP N°3 : ADRESSAGE IP
 @ IP
 LES CLASSES D’@ IP
BLOC D’ADRESSES
 Bloc d’adresses IP = des @ IP consécutives
 à 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.255.255.240
EN BINAIRE
11111111. 11111111. 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
11001101000100000010010100100111
Masque: 255.255.255.240
11111111. 11111111. 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 jButton1MouseClicked(java.awt.event.MouseEvent evt) {
int aip1,msq1, aip2,msq2,aip3,msq3,aip4,msq4;
aip1 = Integer.parseInt(jTextField1.getText());
msq1= Integer.parseInt(jTextField5.getText());
jTextField9.setText(String.valueOf(aip1&msq1));
));
CODE QUI PERMET DE CALCULER @ RÉSEAU
aip2=Integer.parseInt(jTextField2.getText());
msq2=Integer.parseInt(jTextField6.getText());
jTextField10.setText(String.valueOf(aip2&msq2));
));
CODE QUI PERMET DE CALCULER @ RÉSEAU
aip3=Integer.parseInt(jTextField3.getText());
msq3=Integer.parseInt(jTextField7.getText());
jTextField11.setText(String.valueOf(aip3&msq3));
aip4=Integer.parseInt(jTextField4.getText());
msq4=Integer.parseInt(jTextField8.getText());
jTextField12.setText(String.valueOf(aip4&msq4));));
CE QU’ON OBTIENT
CODE QUI PERMET DE CALCULER @DIFFUSION
jTextField13.setText(String.valueOf(aip1 | (256 + (~ msq1))));
jTextField14.setText(String.valueOf(aip2|(256+(~msq2))));
jTextField15.setText(String.valueOf(aip3|(256+(~msq3))));
jTextField16.setText(String.valueOf(aip4|(256+(~msq4))));
AJOUTER LE TEST
// placer tout les get en haut …..
if ((aip1 > 255)||(aip1<0)||(aip2> 255)||(aip2<0)||(aip3>
255)||(aip3<0)||(aip4> 255)||(aip4<0)||(msq1 >
255)||(msq1<0)||(msq2> 255)||(msq2<0)||(msq3>
255)||(msq3<0)||(msq4> 255)||(msq4<0)) {
jDialog1.setVisible(true);
}else{
// reste du code
}
CODE POUR LE BOUTON
RECOMMENCER
private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
jTextField6.setText("");
jTextField7.setText("");
jTextField8.setText("");
jDialog1.setVisible(false);
}
Téléchargement