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 oggettoInetAddress
a partire da un indirizzo IP (passato in forma binaria, per IPv4 occorrono 4 byte);static InetAddress getByAddress(String host, byte[] addr)
: ritorna un oggettoInetAddress
riconducibile ai paramatrihost
edaddr
;static InetAddress getByName(String host)
: ritorna un oggettoInetAddress
corrispondente all'host
passato;
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