/*
无论你是在打电话、发送邮件或建立与Internet的连接,地址是基础。InetAddress 类用来封装我们前面讨论的数字式的IP地址和该地址的域名。你通过一个IP主机名与这个类发生作用,IP主机名比它的IP地址用起来更简便更容易理解。InetAddress 类内部隐藏了地址数字。
一、工厂方法
InetAddress 类没有明显的构造函数 。为生成一个InetAddress对象,必须运用一个可用的工厂方法。工厂方法(factory method)仅是一个类中静态方法返回一个该类实例的约定。这是在一个带有各种参数列表的重载构造函数完成的,当持有惟一方法名时可使结果更清晰。对于InetAddress,三个方法getLocalHost( )、getByName( )以及getAllByName( )可以用来创建InetAddress的实例。三个方法显示如下:
static InetAddress getLocalHost( )
throws UnknownHostException
static InetAddress getByName(String hostName)
throws UnknownHostException
static InetAddress[ ] getAllByName(String hostName)
throws UnknownHostException
getLocalHost( )仅返回象征本地主机的InetAddress对象。get-ByName( )方法返回一个传给它的主机名的InetAddress。如果这些方法不能解决主机名,它们引发一个UnknownHostException异常。
在Internet上 ,用一个名称来代表多个机器是很常有的事。Web服务器中,也有方法提供一定程度的缩放 。getAllByName( )工厂方法返回代表由一个特殊名称分解的所有地址的InetAddresses类数组。在不能把名称分解成至少一个地址时,它将引发一个 Unknown Host-
Exception异常。
下面的例子
*/
package com.prochanges.ft;
import java.net.*;
public class ymJXIP {
InetAddress myIPaddress = null;
InetAddress myServer = null;
public static void main(String args[]) {
ymJXIP mytool;
mytool = new ymJXIP();
System.out.println("Your host IP is: " + mytool.getMyIP());
System.out.println("The Server IP is :" + mytool.getServerIP());
}
// 取得LOCALHOST的IP地址
public InetAddress getMyIP() {
try {
myIPaddress = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
}
return (myIPaddress);
}
// 取得 www.abc.com 的IP地址
public InetAddress getServerIP() {
try {
myServer = InetAddress.getByName("www.baidu.com");
} catch (UnknownHostException e) {
}
return (myServer);
}
}
/*
下面是 该程序的输出
Your host IP is: XP-201207090916/192.168.0.46
The Server IP is :www.baidu.com/119.75.217.56
二、实例方法
InetAddress 类也有一些非静态的方法,列于下面,它们可以用于讨论过的方法返回的对象:
boolean equals(Object other)如果对象具有和other相同的Internet地址则返回true。byte[ ] getAddress( )返回代表对象的Internert地址的以网络字节为顺序的有四个元素的字节数组。String getHostAddress( )返回代表与InetAddress对象相关的主机地址的字符串。String getHostName( )返回代表与InetAddress对象相关的主机名的字符串。int hashCode( )返回调用对象的散列码。boolean isMulticastAddress( )如果Internet地址是一个多播地址返回true;否则返回false。String toString( )返回主机名字符串和IP地址。
Internet地址在分层的缓存服务器系列中被找到。这意味着你的本地机可能像 知道它自己和附近的服务器一样知道一个名称-IP地址的自动映射。对于其他名称 ,它可能向一个本地DNS服务器询问IP地址信息。如果那个服务器不含一个指定的地址,它可以到一个远程的站点去询问。这可以一路通到名为InterNIC(internic.net)的根服务器。该过程可能需要比较长的时间,所以结构化你的代码以使你在本地存储IP地址信息而不是重复向上查找信息是一个明智之举。
*/
无论你是在打电话、发送邮件或建立与Internet的连接,地址是基础。InetAddress 类用来封装我们前面讨论的数字式的IP地址和该地址的域名。你通过一个IP主机名与这个类发生作用,IP主机名比它的IP地址用起来更简便更容易理解。InetAddress 类内部隐藏了地址数字。
一、工厂方法
InetAddress 类没有明显的构造函数 。为生成一个InetAddress对象,必须运用一个可用的工厂方法。工厂方法(factory method)仅是一个类中静态方法返回一个该类实例的约定。这是在一个带有各种参数列表的重载构造函数完成的,当持有惟一方法名时可使结果更清晰。对于InetAddress,三个方法getLocalHost( )、getByName( )以及getAllByName( )可以用来创建InetAddress的实例。三个方法显示如下:
static InetAddress getLocalHost( )
throws UnknownHostException
static InetAddress getByName(String hostName)
throws UnknownHostException
static InetAddress[ ] getAllByName(String hostName)
throws UnknownHostException
getLocalHost( )仅返回象征本地主机的InetAddress对象。get-ByName( )方法返回一个传给它的主机名的InetAddress。如果这些方法不能解决主机名,它们引发一个UnknownHostException异常。
在Internet上 ,用一个名称来代表多个机器是很常有的事。Web服务器中,也有方法提供一定程度的缩放 。getAllByName( )工厂方法返回代表由一个特殊名称分解的所有地址的InetAddresses类数组。在不能把名称分解成至少一个地址时,它将引发一个 Unknown Host-
Exception异常。
下面的例子
*/
package com.prochanges.ft;
import java.net.*;
public class ymJXIP {
InetAddress myIPaddress = null;
InetAddress myServer = null;
public static void main(String args[]) {
ymJXIP mytool;
mytool = new ymJXIP();
System.out.println("Your host IP is: " + mytool.getMyIP());
System.out.println("The Server IP is :" + mytool.getServerIP());
}
// 取得LOCALHOST的IP地址
public InetAddress getMyIP() {
try {
myIPaddress = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
}
return (myIPaddress);
}
// 取得 www.abc.com 的IP地址
public InetAddress getServerIP() {
try {
myServer = InetAddress.getByName("www.baidu.com");
} catch (UnknownHostException e) {
}
return (myServer);
}
}
/*
下面是 该程序的输出
Your host IP is: XP-201207090916/192.168.0.46
The Server IP is :www.baidu.com/119.75.217.56
二、实例方法
InetAddress 类也有一些非静态的方法,列于下面,它们可以用于讨论过的方法返回的对象:
boolean equals(Object other)如果对象具有和other相同的Internet地址则返回true。byte[ ] getAddress( )返回代表对象的Internert地址的以网络字节为顺序的有四个元素的字节数组。String getHostAddress( )返回代表与InetAddress对象相关的主机地址的字符串。String getHostName( )返回代表与InetAddress对象相关的主机名的字符串。int hashCode( )返回调用对象的散列码。boolean isMulticastAddress( )如果Internet地址是一个多播地址返回true;否则返回false。String toString( )返回主机名字符串和IP地址。
Internet地址在分层的缓存服务器系列中被找到。这意味着你的本地机可能像 知道它自己和附近的服务器一样知道一个名称-IP地址的自动映射。对于其他名称 ,它可能向一个本地DNS服务器询问IP地址信息。如果那个服务器不含一个指定的地址,它可以到一个远程的站点去询问。这可以一路通到名为InterNIC(internic.net)的根服务器。该过程可能需要比较长的时间,所以结构化你的代码以使你在本地存储IP地址信息而不是重复向上查找信息是一个明智之举。
*/