jueves, 19 de noviembre de 2009

Traducir Nombres a Direcciones de Internet con Java

Este applet traduce un hostname a una dirección ip. Por ejemplo resuelve www.tudominio.com a 127.0.0.1, suponiendo que esa sea la IP a la que apunta ese dominio.

Lookup.java

import java.awt.*;
import java.net.*;

/*
* la clase de la aplicación
*/
public class Lookup extends Frame {

/*
* campo de texto para el nombre del host
*/
TextField nameField;

/*
* campo de texto para visualizar el nombre de la dirección de internet
*/
TextArea addrArea;

/*
* instancia de InetAddress necesaria para la conversión de nombre a dirección
*/
InetAddress inetAddr;

/*
* punto de inserción en el área de texto de la dirección de internet
*/
int insertIndex;

/*
* el constructor crea la interface de usuario
*/
public Lookup () {

super ("Lookup");

setLayout (new BorderLayout ());

Panel editPanel = new Panel ();
editPanel.setLayout (new BorderLayout ());
editPanel.add ("North", new Label ("Nombre del host"));
nameField = new TextField ("", 32);
editPanel.add ("Center", nameField);

add ("North", editPanel);

Panel areaPanel = new Panel ();
areaPanel.setLayout (new BorderLayout ());
addrArea = new TextArea ("", 24, 32);
addrArea.setEditable (false);
areaPanel.add ("North", new Label ("dirección de Internet"));
areaPanel.add ("Center", addrArea);

add ("Center", areaPanel);

insertIndex = 0;

resize (300, 200);
show ();
}

/**
* manipulación de evento de teclado (tecla retorno)
* traducción de nombre a dirección e imprime en el área de texto
* @param evt - evento
* @param arg - objeto que recibe el evento
*/
public boolean action (Event evt, Object arg) {

if (evt.target.equals (nameField)) {
String name = nameField.getText ();
try {
inetAddr = InetAddress.getByName (name);
String str = inetAddr.toString () + "\n";
addrArea.insertText (str, insertIndex);
insertIndex += str.length ();
} catch (UnknownHostException ex) {
String str = name + "/ No es un host\n";
addrArea.insertText (str, insertIndex);
insertIndex += str.length ();
}

return true;
}
return false;
}

/**
* punto de entrada de la aplicación
* @param args - argumento de la línea de mandatos
*/
public static void main (String args[])
{
new Lookup ();
}
}

El método action es dónde se utiliza el objeto inetAddr para realizar la traducción.

No hay comentarios:

Publicar un comentario

Deja tu comentario...