您现在的位置是:首页 >

Java网络编程从入门到精通(10):Inet4Address类和Inet6Address类

火烧 2022-02-11 03:18:32 1075
Java网络编程从入门到精通(10):I et4Addre 类和I et6Addre 类   为了区分IPv 和IPv 地址 Java提供了两个类 I et Addre 和I et Addre 它们都

Java网络编程从入门到精通(10):Inet4Address类和Inet6Address类  

  为了区分IPv 和IPv 地址 Java提供了两个类 Inet Address和Inet Address 它们都是InetAddress类的子类 这两个类的定义如下

   public final class Inet Address extends InetAddresspublic final class Inet Address extends InetAddress

  这两个类分别按著IPv 和IPv 的规则实现了InetAddress类中的public方法 它们所不同的是Inet Address类比Inet Address类多了一个方法 isIPv CompatibleAddress 这个方法用来判断一个IPv 地址是否和IPv 地址兼容 和IPv 兼容的IPv 地址除了最后四个字节有值名 其他的字节都是 如 ABCD FAFA都是和IPv 兼容的IPv 地址

  当使用InetAddress类的四个静态方法创建InetAddress对象后 可以通过getAddress返回的byte数组来判断这个IP地址是IPv 还是IPv 地址(byte数组长度为 就是IPv 地址 byte数组长度为 就是IPv 地址) 也可以将instanceof来确定InetAddress对象是它的哪个子类的实例 下面的代码演示了如何判断一个IP地址是IPv 还是IPv 地址

   package mynet;import  *;public class MyIP{    public static void main(String[] args) throws Exception    {        if (args length ==  )            return;        InetAddress address = InetAddress getByName(args[ ]);        System out println( IP:   + address getHostAddress());        switch (address getAddress() length)        {            case  :                System out println( 根据byte数组长度判断这个IP地址是IPv 地址! );                break;            case  :                System out println( 根据byte数组长度判断这个IP地址是IPv 地址! );                break;        }        if (address instanceof Inet Address)            System out println( 使用instanceof判断这个IP地址是IPv 地址! );        else if (address instanceof Inet Address)            System out println( 使用instanceof判断这个IP地址是IPv 地址! );    }}

  测试

  执行如下命令

   java mynet MyIP 

Java网络编程从入门到精通(10):Inet4Address类和Inet6Address类

  运行结果

   IP:  根据byte数组长度判断这个IP地址是IPv 地址!使用instanceof判断这个IP地址是IPv 地址!

  测试

  执行如下命令

   java mynet MyIP 

  运行结果

lishixinzhi/Article/program/Java/hx/201311/25929  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码