Prácticas con InetAddress
Enunciado 1
Comproba o funcionamento do seguinte programa, e analiza os resultados obtidos:
1 package probandoinetaddress;
2
3 import java.net.*;
4
5 class ProbandoINetAddress {
6
7 public static void main(String[] args) {
8 try {
9 System.out.println("-> Enderezo IP dnha URL por nome");
10 InetAddress address = InetAddress.getByName("www.google.es");
11 System.out.println(address);
12
13 // Extrae o enderezo IP a partir da cadena que se atopa á dereita da barra /
14 // e logo proporciona este enderezo IP coma argumento de chamada ó método getByName()
15 System.out.println("-> Nome a partir do enderezo");
16 int temp = address.toString().indexOf('/');
17 address = InetAddress.getByName(address.toString().substring(temp + 1));
18 System.out.println(address);
19
20 System.out.println("-> Enderezo IP actual de LocalHost");
21 address = InetAddress.getLocalHost();
22 System.out.println(address);
23
24 System.out.println("-> Nome de LocalHost a partir do enderezo");
25 temp = address.toString().indexOf('/');
26 address = InetAddress.getByName(address.toString().substring(temp + 1));
27 System.out.println(address);
28
29 System.out.println("-> Nome actual de LocalHost");
30 System.out.println(address.getHostName());
31
32 System.out.println("-> Enderezo IP actual de LocalHost");
33 // Toma la dirección IP como un array de bytes
34 byte[] bytes = address.getAddress();
35 // Converte os bytes do enderezo IP a valores sen singo
36 // e os presenta separados por espazos
37 for (int cnt = 0; cnt < bytes.length; cnt++) {
38 int uByte = bytes[cnt] < 0 ? bytes[cnt] + 256 : bytes[cnt];
39 System.out.print(uByte + " ");
40 }
41 System.out.println();
42 } catch (UnknownHostException e) {
43 System.out.println(e);
44 System.out.println("Debes estar conectado para que isto funcione ben!");
45 }
46 }
47 }