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

原创 2003年01月20日 12:47:00

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

//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());
     }
     //取得本机IP地址成员方法
     public InetAddress getLocalIP() 
     {
       try
       {
          localIPAddress = InetAddress.getLocalHost();
       }
       catch (UnknownHostException e) 
       {}
       return ( localIPAddress );
     }  
     //取得赛迪网服务器的IP地址成员方法
     public InetAddress getCCIDNETIP( String strServerName )
     {
        try
        {
           ccidnetIPAddress = InetAddress.getByName( strServerName );
        }  
        catch (UnknownHostException e)
        {}
        return ( ccidnetIPAddress );
     }
     //通过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语言进行网络程序设计有所帮助。

[转载]在Java2环境中应用IP地址封装对象

 IP地址封装对象的结构Java2平台中定义的 InetAddress对象是利用Java语言进行网络通讯程序设计过程中,对互联网IP地址进行对象类型封装后创建的JDK API对象。以InetAddre...
  • zaowei21
  • zaowei21
  • 2004年12月24日 12:50
  • 1191

用PyQt实现封装QT的IP地址控件

由于QT没有提供现成的IP地址控件,而仅仅使用正则表达式和inputMask为QLineEdit进行IP地址输入限制和验证,效果不怎么理想。由于项目需要,所以用PyQt4封装了一个IP地址控件。参考地...
  • softdzf
  • softdzf
  • 2011年07月21日 19:46
  • 1726

Tcp/IP协议详解和IP地址分类

ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图。 ...
  • happymatilian
  • happymatilian
  • 2015年10月18日 16:34
  • 1548

MAC,IP,路由传输封装过程

1.数据包经由路由转发时源、目的IP地址及MAC地址变化情况 IP数据包经由路由转发的时候源ip,目的ip,源MAC,目的mac是否发生改变,如何改变?   A—–(B1-B2)—–...
  • u014113117
  • u014113117
  • 2016年05月04日 08:00
  • 2798

thinkphp-关于模板里 IP 地址的引用实例

1.在需要的控制器里如下所示: 2.在对应的模板里做如下引用: 至此,完成!...
  • u014796999
  • u014796999
  • 2015年10月06日 11:39
  • 529

windows中ip地址存放的位置,及修改

Windows中ip的存储与设置 修改ip命令:netsh interface ipv4 set address name="本地连接" source=static addr=10.1.50.64 ...
  • youyudexiaowangzi
  • youyudexiaowangzi
  • 2015年09月14日 11:23
  • 1552

使用阿里云的ip地址查询服务-使用java调用ip地址查询服务

转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/54375734 本文出自【我是干勾鱼的博客】 之前在文章《使用阿里云的ip地...
  • dongdong9223
  • dongdong9223
  • 2017年01月12日 18:00
  • 2405

应用获取客户端IP小结

应用获取客户端IP的3种形式 通过request.getRemoteAddr() 这是最官方的获取客户端IP的方法,但当请求经过代理服务器后,这个方法返回的是代理服务器的IP. 所以我们线...
  • ahgaojie451
  • ahgaojie451
  • 2015年04月24日 11:25
  • 665

公有ip地址 和内网ip地址

IP地址分为公有IP地址和私有IP地址 公有地址(Public address,也可称为公网地址)由Internet NIC(Internet Network Information Center...
  • nui111
  • nui111
  • 2015年09月03日 11:46
  • 600

PyQt4实现封装的QT的ip地址控件

由于QT没有提供现成的IP地址控件,而仅仅使用正则表达式和inputMask为QLineEdit进行IP地址输入限制和验证,效果不怎么理想。所以用PyQt4封装了一个IPv4地址控件。 #-*- c...
  • wdt3385
  • wdt3385
  • 2013年09月24日 16:51
  • 950
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Java2环境中应用IP地址封装对象
举报原因:
原因补充:

(最多只允许输入30个字)