:: Enseignements :: ESIPE :: E4INFO :: 2007-2008 :: Java Réseau II - Applications réseaux ::
[LOGO]

Interface réseau, Adresse IP, type d'adresse IP, appel au DNS


Exercice 1 - My name is 159.88, 193.50.159.88

Écrire un programme Java qui réalise les opérations suivantes :
  1. Récupérer et afficher l'ensemble des interfaces réseaux (NetworkInterface) de la machine courante.
  2. Afficher l'adresse IP que vous utilisez pour communiquer avec la machine locale, ainsi que le nom de l'interface réseau à laquelle cette adresse est associée.

Exercice 2 - Bonneteau binaire

Deux caractéristiques du langage Java sont cruciales dans la programmation réseau et les manipulations d'adresses:
  • Une promotion entière est systématiquement effectuée lors de toute opération binaire sur les types primitifs entiers byte, char et short, c'est-à-dire qu'ils sont convertis en int avant de subir l'opération ;
  • Ces types primitifs numériques entiers sont tous signés (leur bit de poids fort est toujours considéré comme un bit de signe).

  1. Afficher sous forme xxx.xxx.xxx.xxx l'adresse IP renvoyée par getLocalHost() en utilisant la méthode getAddress().
  2. Écrire une méthode byte decaleADroiteByte(byte b, int n) qui décale l'octet b (vu comme une suite de 8 bits) de n bits à droite. Par exemple, on veut qu'un décalage de 2 bits à droite de la valeur 32 donne 8, ce qui semble normal vu la représentation bit à bit de ces deux octets (00100000 et 00001000), mais on veut aussi que le décalage de 2 bits à droite de la valeur -124 donne 33, puisque les représentations bit à bit de ces deux valeurs sont 10000100 et 00100001.

Exercice 3 - Bonnes résolutions

  1. Écrire un programme Java qui permet d'afficher les noms et adresses IP des machines suivantes :
    1. la machine connue sous le nom www.univ-mlv.fr ;
    2. la machine dont l'adresse IP est 193.55.63.80 ;
    3. la machine dont l'adresse IP est 300.55.63.80.
  2. Indiquer pour ces machines s'il y a résolution de nom ?
  3. Quel est le nom canonique de www.univ-mlv.fr ?
Nous allons maintenant écrire un autre programme affichant des informations sur l'adresse IP d'une machine particulière passée en argument.

  1. Écrire un programme qui affiche le nom et l'adresse d'une machine passée en argument. L'argument pourra être soit une adresse IP soit un nom de machine.
  2. La méthode InetAddress.isReachable() permet de tester si une machine est atteignable sur le réseau. Ajouter cette information à votre programme.
    Utiliser votre programme pour savoir si les machines www.w3.org et www.google.fr sont "atteignables" à partir de la machine locale.
    Qu'en déduisez vous sur l'implantation de cette méthode en mode utilisateur ?
  3. Modifier le programme pour qu'il affiche si une adresse IP est une adresse multicast, de loopback ou publique (attention petit piège).
  4. Une machine (par exemple, un routeur) peut avoir plusieurs adresses IP. Comment connaître, par exemple, toutes les adresses de www.w3.org. Modifier votre programme en conséquence.