Diferencia entre revisiones de «Solucións ás Prácticas con InetAddress»

De MediaWiki
Ir a la navegación Ir a la búsqueda
 
(No se muestran 4 ediciones intermedias del mismo usuario)
Línea 27: Línea 27:
 
     }
 
     }
 
}
 
}
 +
</syntaxhighlight>
  
 
Por exemplo, pasando como parámetro www.google.es, devolve:
 
Por exemplo, pasando como parámetro www.google.es, devolve:
Línea 33: Línea 34:
  
 
E pasando como parámetro 8.8.8.8 (o servizo de resolución DNS de google);
 
E pasando como parámetro 8.8.8.8 (o servizo de resolución DNS de google);
−
  Enderezo: 8..8.8.8
+
  Enderezo: 8.8.8.8
−
  Nome: dns.google  
+
  Nome: dns.google
−
 
 
−
</syntaxhighlight>
 
  
 
= Enunciado 3 =
 
= Enunciado 3 =
 
Realiza un programa que:
 
Realiza un programa que:
−
* admita desde a liña de comandos un none de máquina ou un enderezo IP
+
* admita desde a liña de comandos un nome de máquina ou un enderezo IP
 
* e visualice información sobre ela
 
* e visualice información sobre ela
 
:* o nome do host  
 
:* o nome do host  
 
:* o enderezo IP do host
 
:* o enderezo IP do host
 
:* o seu nome canónico
 
:* o seu nome canónico
 +
 +
<syntaxhighlight lang="java" line enclose="div" highlight="" >
 +
import java.net.*;
 +
import java.io.*;
 +
 +
/* 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 Exercicio3 {
 +
 +
    public static void main(String[] args) {
 +
        String maquina = null;
 +
        BufferedReader lectura = new BufferedReader(new InputStreamReader(System.in));
 +
        System.out.println("Introduzca IP ou nome dea máquina: ");
 +
        try {
 +
            maquina = lectura.readLine();
 +
            InetAddress dir = null;
 +
 +
            System.out.println("SAÍDA PARA A URL:");
 +
            dir = InetAddress.getByName(maquina);
 +
            probaMetodos(dir);
 +
 +
            // Array de tipo InetAddress con todas os enderezos IP asingados
 +
            // Podes probar con  google.es
 +
            System.out.println("\n\tEnderezos IP para: " + dir.getHostName());
 +
            InetAddress[] enderezos = InetAddress.getAllByName(dir.getHostName());
 +
            for (int i = 0; i < enderezos.length; i++) {
 +
                System.out.println("\t\t" + enderezos[i].toString());
 +
            }
 +
            System.out.println("=========================================");
 +
        } catch (UnknownHostException el) {
 +
            el.printStackTrace();
 +
        } catch (IOException e2) {
 +
            e2.printStackTrace();
 +
        }
 +
    }// main
 +
    //
 +
 +
    private static void probaMetodos(InetAddress dir) {
 +
        System.out.println("\tMetodo getByName(): " + dir);
 +
        InetAddress dir2;
 +
        try {
 +
            dir2 = InetAddress.getLocalHost();
 +
            System.out.println("\tMetodo getLocalHost(): " + dir2);
 +
        } catch (UnknownHostException e) {
 +
            e.printStackTrace();
 +
        }
 +
        // usamos métodas da clase
 +
        System.out.println("\tMetodo getHostName(): " + dir.getHostName());
 +
        System.out.println("\tMetodo getHostAddress(): " + dir.getHostAddress());
 +
        System.out.println("\tMetodo toString(): " + dir.toString());
 +
        System.out.println("\tMetodo getCanonicalHostName(): " + dir.getCanonicalHostName());
 +
    }
 +
}
 +
</syntaxhighlight>

Revisión actual del 10:09 9 dic 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 nome 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 }