在Java环境中应用IP地址封装对象
作者苏洋 本文选自赛迪网 年月日
IP地址封装对象的结构
Java平台中定义的InetAddress对象是利用Java语言进行网络通讯程序设计过程中对互联网IP地址进行对象类型封装后创建的JDK API对象以InetAddress对象为父对象Java平台中还定义了InetAddress和InetAddress对象分别对应于符合IPv规范和IPv规范的互联网地址对象InetAddress对象的定义继承关系如下
javalangObject
|
+InetAddress
在该对象中没有定义构造方法即不能够利用new操作符创建InetAddress对象实例那么如何获取该对象的实例呢?在InetAddress对象中定义了多种类型的成员方法在应用程序中可以调用这些方法来实现相应的网络功能
● byte[] getAddress()
● static InetAddress[] getAllByName(String host)
● static InetAddress getByAddr(byte[] addr)
● static InetAddress getByAddr(String host byte[] addr)
● static InetAddress getByName(String host)
● String getHostAddress()
● static InetAddress getLocalHost()
… …
从上述InetAddress对象的成员方法定义名称可以看出在Java应用程序中可以采用不同的方法获取指定网络对象的IP地址封装对象实例并进而调用该对象中定义的各种类型的成员方法为应用程序提供相应的功能
IP地址封装对象应用实例
从上述InetAddress对象定义的成员方法的参数形式可以看出在读者的Java应用程序中获取本机IP地址封装对象的方法只需要调用getLocalHost方法就可以实现而可以采用通过指定IP地址指定服务器名称的方式创建指向其它计算机系统的IP地址封装对象下面的实例代码演示了InetAddress对象实例的创建方法并在创建IP地址封装对象实例后调用该对象中定义的成员方法获取服务的方式
//IPAddressDemojava
import *;
public class IPAddressDemo
{
InetAddress localIPAddress = null;
InetAddress ccidnetIPAddress = null;
public static void main( String args[])
{
IPAddressDemo ipInstance;
ipInstance = new IPAddressDemo();
Systemoutprintln("本机IP地址 : " + ipInstancegetLocalIP());
Systemoutprintln("赛迪网服务器IP地址 : " +
ipInstancegetCCIDNETIP(""));
Systemoutprintln("赛迪网服务器域名 : " +
ipInstancegetCCIDNETName());
}
//取得本机IP地址成员方法
public InetAddress getLocalIP()
{
try
{
localIPAddress = InetAddressgetLocalHost();
}
catch (UnknownHostException e)
{}
return ( localIPAddress );
}
//取得赛迪网服务器的IP地址成员方法
public InetAddress getCCIDNETIP( String strServerName )
{
try
{
ccidnetIPAddress = InetAddressgetByName( strServerName );
}
catch (UnknownHostException e)
{}
return ( ccidnetIPAddress );
}
//通过IP地址封装对象取得计算机系统域名成员方法
public String getCCIDNETName()
{
String strServerName = null;
try
{
strServerName = ccidnetIPAddressgetHostName();
}
catch (SecurityException e)
{}
return ( strServerName );
}
}
上面的程序代码中Java Main方法IPAddressDemo中定义了getLocalIPgetCCIDNETIP和getCCIDNETName三个成员方法分别用于获取指向当前计算机系统的IP地址对象获取指向赛迪网服务器的IP地址对象和利用该地址对象获取服务器域名的方法
从这些成员方法的定义形式可以看出InetAddress对象中定义的静态类型成员方法getLocalHost和getByName返回的是InetAddress对象实例在后续程序代码中可以直接调用该实例成员方法来获取服务例如在getCCIDNETName方法中调用成员方法getHostName的过程该程序的输出结果为
本机IP地址 : support/
赛迪网服务器IP地址 : /
赛迪网服务器域名 :
Java平台中定义了多种类型的对象用于以URLSocketRMI和CORBA等方式实现Java程序的网络通信和数据交换而本文只是对互联网环境中的基本应用对象-IP地址的Java封装对象的结构和成员方法形式进行了简要剖析并编写了简单的实例程序说明其成员方法的应用方式希望能够为读者利用Java语言进行网络程序设计有所帮助