The java.net.InetAddress
class represents IP addresses.
It works with either the hostname (e.g. www.kth.se)
or the numerical IP address (e.g. 64.124.81.56) of an Internet
host. InetAddress
class offers a number of useful methods for dealing with hostnames
and IP addresses.
The demo programs below illustrate some of the capabilities of
the InetAddress class.
The applet LocalAddress
displays the local host and IP address. Note that the SecurityManager
in the browser JVM may block access to this information. You can
try it in the appletviewer tool or run it as an application.
|
import
java.applet.*;
import java.awt.*;
import java.net.*;
/** Show how InetAddress can provide the local IP address.**/
public class LocalAddress extends Applet
{
String fMessage = "";
/**
* Create an instance of InetAddress
for the
* local host and display the local
IP address.
**/
public void init () {
try {
InetAddress local_Address
=
InetAddress.getLocalHost ();
fMessage ="Local IP
address = " +
local_Address.toString ();
}
catch (UnknownHostException
e) {
fMessage ="Unable to
obtain local IP address";
}
System.out.println (fMessage);
} // init
/** Paint IP info in Applet window. **/
public void paint (Graphics g) {
g.drawString (fMessage,20,20);
}
/** Print out the local address in app mode.**/
public static void main (String [] args) {
LocalAddress applet =
new LocalAddress ();
applet.init ();
} // main
} // Class LocalAddress |
This application returns the IP address if given
a host name, or returns the host name if given the IP address:
TranslateAddress
|
import
java.net.*;
/** Translate an IP argument to a host name or
* a host name to an IP address.
**/
class TranslateAddress {
public static void main (String
args[])
{
// Look for command line argument
if (args.length != 1) {
System.out.println
("Error! No IP or host name address");
System.out.println
("Usage: java TranslateAddress java.sun.com");
System.out.println
(" or java TranslateAddress 209.249.116.143");
System.exit (0);
}
try {
// When the argument
passed is a host name (e.g. sun.com),
// the corresponding
IP address is returned. If passed
// an IP address,
then only the IP address is returned.
InetAddress address
= InetAddress.getByName (args[0]);
System.out.println
("Address " + args[0] + " = " + address);
// To get the hostname
when passed an IP address use
// getHostName (),
which will return the host name string.
System.out.println
("Name of " + args[0] + " = " +
address.getHostName
());
} catch (UnknownHostException
e) {
System.out.println
("Unable to translate the address.");
}
} // main
} // class TranslateAddress
|
Example runs of this program:
c:\> java TranslateAddress gluon.particle.kth.com
Address gluon.particle.kth.se = gluon.particle.kth.se/130.237.34.133
Name of gluon.particle.kth.se = gluon.particle.kth.se
c:\> java TranslateAddress 130.237.34.133
Address 130.237.34.133 = /130.237.34.133
Name of 130.237.34.133 = gluon.particle.kth.se
Note that getByName(String
str) returns an instance of InetAddress
when given a host name. Then when this objects converts to a string
it displays the HostName/IP_Address
pair.
However, when given an IP address the resulting InetAddress
object does not show the host name. Instead you must use the the
getHostName()
method to obtain the hostname.
References and Web Resources
Latest update: Dec. 8, 2004
|