Diferencia entre revisiones de «Solucións ás Prácticas con InetAddress»
Ir a la navegación
Ir a la búsqueda
| Línea 50: | Línea 50: | ||
/* Le un nome de máquina ou un enderezo IP e visualiza nome do host, enderezo IP do host e o seu nome canónico */ | /* Le un nome de máquina ou un enderezo IP e visualiza nome do host, enderezo IP do host e o seu nome canónico */ | ||
| − | public class | + | public class Exercicio3 { |
public static void main(String[] args) { | public static void main(String[] args) { | ||
String maquina = null; | String maquina = null; | ||
BufferedReader lectura = new BufferedReader(new InputStreamReader(System.in)); | BufferedReader lectura = new BufferedReader(new InputStreamReader(System.in)); | ||
| − | System.out.println("Introduzca IP | + | System.out.println("Introduzca IP ou nome dea máquina: "); |
try { | try { | ||
maquina = lectura.readLine(); | maquina = lectura.readLine(); | ||
| Línea 67: | Línea 67: | ||
// Podes probar con google.es | // Podes probar con google.es | ||
System.out.println("\n\tEnderezos IP para: " + dir.getHostName()); | System.out.println("\n\tEnderezos IP para: " + dir.getHostName()); | ||
| − | InetAddress[] enderezos | + | InetAddress[] enderezos = InetAddress.getAllByName(dir.getHostName()); |
| − | |||
for (int i = 0; i < enderezos.length; i++) { | for (int i = 0; i < enderezos.length; i++) { | ||
System.out.println("\t\t" + enderezos[i].toString()); | System.out.println("\t\t" + enderezos[i].toString()); | ||
Revisión del 18:07 13 nov 2021
Enunciado 2
Escribe un programa que facendo uso da clase InetAddress simule ó comando nslookup, que amosa o nome dunha máquina a partir da súa IP
1 import java.net.*;
2 public class obtenerDire {
3 public static void main(String[] args) {
4 /*Introduce a IP do sitio por liña de comandos: se non se introduce remátase coa execución do programa informando */
5 if (args.length == 0) {
6 System.out.println("Introduce como argumente una IP correcta");
7 System.exit(-1);
8 }
9
10 try {
11 //Un nodo conterá o parametro pasado por liña de comandos.
12 String nodo = args[0];
13
14 InetAddress direccion = InetAddress.getByName(nodo);
15
16 //Obtemos a IP e o nome do host do nodo anterior
17 System.out.println("Enderezo: " + direccion.getHostAddress());
18 System.out.println("Nome: " + direccion.getHostName());
19
20 } catch (UnknownHostException e) {
21 System.out.println("A IP non existe");
22 }
23 }
24 }
Por exemplo, pasando como parámetro www.google.es, devolve:
Enderezo: 142.250.184.3 Nome: www.google.es
E pasando como parámetro 8.8.8.8 (o servizo de resolución DNS de google);
Enderezo: 8.8.8.8 Nome: dns.google
Enunciado 3
Realiza un programa que:
- admita desde a liña de comandos un none de máquina ou un enderezo IP
- e visualice información sobre ela
- o nome do host
- o enderezo IP do host
- o seu nome canónico
1 import java.net.*;
2 import java.io.*;
3
4 /* Le un nome de máquina ou un enderezo IP e visualiza nome do host, enderezo IP do host e o seu nome canónico */
5 public class Exercicio3 {
6
7 public static void main(String[] args) {
8 String maquina = null;
9 BufferedReader lectura = new BufferedReader(new InputStreamReader(System.in));
10 System.out.println("Introduzca IP ou nome dea máquina: ");
11 try {
12 maquina = lectura.readLine();
13 InetAddress dir = null;
14
15 System.out.println("SAÍDA PARA A URL:");
16 dir = InetAddress.getByName(maquina);
17 probaMetodos(dir);
18
19 // Array de tipo InetAddress con todas os enderezos IP asingados
20 // Podes probar con google.es
21 System.out.println("\n\tEnderezos IP para: " + dir.getHostName());
22 InetAddress[] enderezos = InetAddress.getAllByName(dir.getHostName());
23 for (int i = 0; i < enderezos.length; i++) {
24 System.out.println("\t\t" + enderezos[i].toString());
25 }
26 System.out.println("=========================================");
27 } catch (UnknownHostException el) {
28 el.printStackTrace();
29 } catch (IOException e2) {
30 e2.printStackTrace();
31 }
32 }// main
33 //
34
35 private static void probaMetodos(InetAddress dir) {
36 System.out.println("\tMetodo getByName(): " + dir);
37 InetAddress dir2;
38 try {
39 dir2 = InetAddress.getLocalHost();
40 System.out.println("\tMetodo getLocalHost(): " + dir2);
41 } catch (UnknownHostException e) {
42 e.printStackTrace();
43 }
44 // usamos métodas da clase
45 System.out.println("\tMetodo getHostName(): " + dir.getHostName());
46 System.out.println("\tMetodo getHostAddress(): " + dir.getHostAddress());
47 System.out.println("\tMetodo toString(): " + dir.toString());
48 System.out.println("\tMetodo getCanonicalHostName(): " + dir.getCanonicalHostName());
49 }
50 }