Deux caractéristiques du langage Java sont cruciales dans la programmation réseau et les manipulations d'adresses:
Écrire une méthode byte decaleADroite(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 en revanche que le décalage de 2 bits à doite de la valeur -124 donne 33, puisque les représentations bit à bit de ces deux valeurs sont 10000100 et 00100001).
Écrire un programme Java qui permet d'afficher l'ensemble des interfaces réseaux de la machine courante.
Écrire un programme Java qui permet d'afficher les noms et adresses IP des machines suivantes :
Modifier le programme pour qu'il affiche le nom et l'adresse d'une machine passée en argument. De plus, afficher si une adresse IP est une adresse multicast, de loopback ou privée.
Une machine (par exemple, un routeur) peut avoir plusieurs adresses IP. Comment connaître, par exemple, toutes les adresses de marne.cssi.renater.fr ou de www.w3.org.