La classe
InetAddres (del package java.net) è in grado di rappresentare un indirizzo IP di rete. All'interno troviamo alcuni metodi statici (non hanno bisogno di un'istanza della classe) particolarmente utili:static InetAddress[] getAllByName(String host): ritorna un array di indirizzi IP riconducibili al nome dell'host;static InetAddress getByAddress(byte[] addr): ritorna un oggettoInetAddressa partire da un indirizzo IP (passato in forma binaria, per IPv4 occorrono 4 byte);static InetAddress getByAddress(String host, byte[] addr): ritorna un oggettoInetAddressriconducibile ai paramatrihostedaddr;static InetAddress getByName(String host): ritorna un oggettoInetAddresscorrispondente all'hostpassato;
In caso di errori, nome dell'host o indirizzo IP errato, questi metodi scatenano un'eccezione di tipo
UnknownHostException, ragion per cui vanno sempre innescati all'interno di blocchi try/catch. Vi occorre sapere l'indirizzo IP di un host? Poche righe di codice e il problema è risolto:package address;
import java.net.*;
public class AddressTest {
public static void main(String[] args) {
try {
String hostname=args[0];
InetAddress ip=InetAddress.getByName(hostname);
System.out.println(" Hostname: "+hostname);
System.out.println(" Indirizzo IP: "+ip.toString().substring(args[0].length()+1));
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println("Attenzione: fornire il nome dell'host come parametro!");
}
catch(UnknownHostException e) {
System.out.println("Attenzione: hostname sconosciuto!");
}
}
}
Qui trovate il file jar del programma.

Nessun commento:
Posta un commento