:: Enseignements :: Master :: Master TTT :: 2012-2013 :: Programmation réseau en Java ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Adresses IP en Java |
Ce TD est consacré à l'utilisation de la classe java.net.InetAddress représentant une adresse IP en Java.
Exercice 1 - Une bonne résolution pour la nouvelle année
Écrire une classe Java réalisant la résolution d'un nom de domaine (conversion du nom en une adresse IP). Gérer le cas où un nom de domaine ne serait pas résolvable. Indiquer s'il s'agit d'une adresse du réseau local. Récupérer le nom canonique associé et tester la résolution de celui-ci : comparer les deux adresses IP.
Exercice 2 - Un scanner d'adresses
On souhaite tester la connectivité d'un échantillon de machines sur un réseau. On exprime le réseau en utilisant une adresse IP accompagnée d'un entier spécifiant le nombre de bits définissant le réseau (par exemple 10.1.0.0/16 définit le réseau sur la plage d'adresses de 10.1.0.0 à 10.1.255.255). On indique également la taille de l'échantillon à tester (que l'on note N). On choisit aléatoirement N machines sur le réseau pour lesquelles on teste la connectivité. On rapporte les résultats sur la sortie standard (System.out).
- Créer une classe Network comportant un champ byte[] et int pour spécifier un réseau. Écrire un constructeur acceptant une chaîne du type "w.x.y.z/masque" comme argument. Implanter des getters pour les champs.
- Ajouter à la classe Network une méthode tirant aléatoirement une adresse IP appartenant au réseau. Il est possible d'obtenir un entier aléatoire compris entre 0 et i-1 (inclus) en initialisant un objet Random et en utilisant sa méthode nextInt(i). L'adresse sera retournée sous la forme d'une InetAddress.
- Créer une classe ReachabilityScanner avec une méthode main dont le tableau d'arguments est peuplé par le réseau et la taille de l'échantillon. Implanter dans cette méthode le code nécessaire au scan. On utilisera un timeout de 1 seconde pour tester l'accessibilité de chaque machine.
- Quelle précaution doit-on prendre pour éviter de scanner plusieurs fois la même adresse ?
- Le code écrit fonctionne-t-il avec des adresses IPv6 ?
© Université de Marne-la-Vallée