在Java2环境中应用IP地址封装对象

2003-1-17 13:07:58【作者】 畅享网 【进入论坛】
广告

在Java2环境中应用IP地址封装对象

苏洋  


 
IP地址封装对象的结构

Java2平台中定义的InetAddress对象是利用Java语言进行网络通讯程序设计过程中,对互联网IP地址进行对象类型封装后创建的JDK API对象。以InetAddress对象为父对象,Java2平台中还定义了Inet4Address和Inet6Address对象,分别对应于符合IPv4规范和IPv6规范的互联网地址对象。InetAddress对象的定义继承关系如下:

java.lang.Object
  |
+--java.net.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地址封装对象实例后,调用该对象中定义的成员方法获取服务的方式:

file://IPAddressDemo.java
import java.net.*;
public class IPAddressDemo
{
    InetAddress localIPAddress = null;
    InetAddress ccidnetIPAddress = null;
    public  static void main( String args[])
    {
        IPAddressDemo  ipInstance;
        ipInstance = new IPAddressDemo();
        System.out.println("本机IP地址 : " + ipInstance.getLocalIP());
        System.out.println("赛迪网服务器IP地址 : " +
ipInstance.getCCIDNETIP("www.ccidnet.com.cn"));
        System.out.println("赛迪网服务器域名 : " +
ipInstance.getCCIDNETName());
     }
    
file://取得本机IP地址成员方法
     public InetAddress getLocalIP()
     {
       try
       {
          localIPAddress = InetAddress.getLocalHost();
       }
       catch (UnknownHostException e)
       {}
       return ( localIPAddress );
     } 
    
file://取得赛迪网服务器的IP地址成员方法
     public InetAddress getCCIDNETIP( String strServerName )
     {
        try
        {
           ccidnetIPAddress = InetAddress.getByName( strServerName );
        } 
        catch (UnknownHostException e)
        {}
        return ( ccidnetIPAddress );
     }
    
file://通过IP地址封装对象取得计算机系统域名成员方法
     public String getCCIDNETName()
     {
      String strServerName = null;
        try
        {
           strServerName = ccidnetIPAddress.getHostName();
        } 
        catch (SecurityException e)
        {}
        return ( strServerName );
     }
}
 

上面的程序代码中,Java Main方法IPAddressDemo中定义了getLocalIP、getCCIDNETIP和getCCIDNETName三个成员方法,分别用于获取指向当前计算机系统的IP地址对象、获取指向赛迪网服务器的IP地址对象和利用该地址对象获取服务器域名的方法。

从这些成员方法的定义形式可以看出:InetAddress对象中定义的静态类型成员方法getLocalHost和getByName返回的是InetAddress对象实例,在后续程序代码中可以直接调用该实例成员方法来获取服务,例如在getCCIDNETName方法中调用成员方法getHostName的过程。该程序的输出结果为:

本机IP地址 : support/192.168.19.251
赛迪网服务器IP地址 :
www.ccidnet.com.cn/210.51.0.73
赛迪网服务器域名 : www.ccidnet.com.cn

小结

Java2平台中定义了多种类型的对象,用于以URL、Socket、RMI和CORBA等方式实现Java程序的网络通信和数据交换,而本文只是对互联网环境中的基本应用对象-IP地址的Java封装对象的结构和成员方法形式进行了简要剖析,并编写了简单的实例程序说明其成员方法的应用方式,希望能够为读者利用Java语言进行网络程序设计有所帮助。 

本文原载于赛迪网

如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐
jill.jiang@amteam.org | 021-51096826-112 | 在线联系
老孙的IT运维管理之道[原创]用户的BSM用户的IT业务管..

从企业实际的IT运营角度来看,BSM是推动IT与业务融合,实现、改善WCNG司IT管理和治理的最佳实践之一。

吕建伟 专栏和CIO问答软件项目实施管理

现实中很少能按照正规流程来的,所以只能把流程中的各个环节拆开,个个击破,以后就可以见招拆招了。

ITIL实施:CIO时刻准备着

千军易得,一将难求,要推进ITIL实施,CIO扮演的角色不容忽视。吹响集结号,CIO出击的时刻已经来到。

节能与优化IT 企业CIO过冬良策

当前金融危机的影响还在继续漫延,很多企业都在苦寻过冬的良策,在这种情况下,节能与优化技术与产品无疑成为CIO们关注的首要对象,本次选题就是针对节能与优化IT来为CIO们提供过冬的良……