`

IPv6检验函数,查看一个TEXT添的IPv6是否正确

阅读更多
public   class   IPv6   {   
 
  public   static   void   main(String[]   args)   {   
    String   ipv6   =   "3255:0304:0000:FE4A:174F:5577:289C:0014 ";   
    short[]   s   =   ipv6ToShort(ipv6);   
    byte[]   b   =   ipv6ToByte(ipv6);   
    for   (short   c   :   s)   {   
      System.out.printf( "%9d   ",   c);   
    }   
    System.out.println();   
    for   (byte   c   :   b)   {   
      System.out.printf( "%4d   ",   c);   
    }   
    System.out.println();   
    System.out.println(checkIPv6(ipv6));   
  }   
 
  //   将   IPv6   转为   byte[16],大于   0x7F   的值用负数表示   
  public   static   byte[]   ipv6ToByte(String   ipv6)   {   
    byte[]   ipv6Byte   =   new   byte[16];   
    String[]   ipv6s   =   ipv6.split( ": ");   
    for   (int   i   =   0;   i   <   ipv6Byte.length   /   2;   i++)   {   
      int   k   =   Integer.parseInt(ipv6s[i],   16);   
      ipv6Byte[2   *   i]   =   (byte)   (k   > >  ;   
      ipv6Byte[2   *   i   +   1]   =   (byte)   ((k   |   0xff00)   &   0xff);   
    }   
    return   ipv6Byte;   
  }   
     
  //   将   IPv6   转为   short[8],大于   0x7FFF   的值用负数表示     
  public   static   short[]   ipv6ToShort(String   ipv6)   {   
    short[]   ipv6Short   =   new   short[8];   
    String[]   ipv6s   =   ipv6.split( ": ");   
    for   (int   i   =   0;   i   <   ipv6Short.length;   i++)   {   
      ipv6Short[i]   =   (short)Integer.parseInt(ipv6s[i],   16);         
    }   
    return   ipv6Short;   
  }   
     
  //   检验   IPv6   的格式   
  public   static   boolean   checkIPv6(String   ipv6)   {   
    return   ipv6.matches( "(\\p{XDigit}){1,4}(:(\\p{XDigit}){1,4}){7} ");   
  }   
}
分享到:
评论

相关推荐

    Thc-IPv6函数包,用于IPv6编程

    THC-IPv6函数包是一个专门针对IPv6编程的开源工具包,它为开发者提供了丰富的功能,便于构建基于IPv6的网络应用程序。 THC-IPv6库由The Hacking Project创建,其全称是"The Hacking Company - IPv6 Toolkit"。这个...

    编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址

    所以,2001:db8:85a3:0:0:8A2E:0370:7334 也是一个有效的 IPv6 address地址。 然而,我们不能因为某个组的值为 0,而使用一个空的组,以至于出现 (::) 的情况。 比如, 2001:0db8:85a3::8A2E:0370:7334 是无效的 ...

    C# 取ipv6地址(有临时地址时取临时Ipv6地址)

    在C#编程环境中,获取IPv4和IPv6地址是一项常见的任务,特别是在网络编程或系统信息获取的场景下。本文将详细讲解如何利用C#来获取IPv4和IPv6地址,特别是当存在临时IPv6地址时如何优先选择这些地址。 首先,我们...

    IPv6重复地址检测

    NS消息的源地址是一个未指定的地址(::/128),而目的地址则是待检测的IPv6地址。 2. **等待响应**:主机将新配置的地址标记为“实验性地址”(IFA_F_TENTATIVE),这意味着在DAD完成之前,这个地址不能用于发送或...

    IPV4与IPV6兼容的socket编程

    在 Socket 编程中,兼容 IPV4 和 IPV6 是一个非常重要的设计考虑。 IPV4 和 IPV6 是两种不同的网络协议,它们之间存在着一定的差异,特别是在地址结构和 Socket 编程接口方面。为了实现 IPV4 和 IPV6 的兼容,Socket...

    java IPv6缩写和非缩写转化方法类

    类中completionIpV6()为补全缩写ipv6,simplifyIpV6()为将全ipv6转化为缩写

    浅谈IPv6环境下的入侵检测

    ### 浅谈IPv6环境下的入侵检测 #### 引言 随着互联网的飞速发展,IPv4地址资源的枯竭已成为制约互联网进一步发展的关键因素。为此,IPv6作为一种全新的互联网协议,以其庞大的地址空间(128位)有效解决了IPv4地址...

    ipv6 编程指导 从ipv4到ipv6

    IPv6套接字编程是网络通信领域的一个重要主题,它涉及到如何在新的互联网协议版本下进行数据传输。IPv6作为IPv4的升级版,引入了更大的地址空间和更高效的路由机制,但同时也带来了编程接口的变化。本文将深入探讨...

    IPV6电视软件 IPV6播放软件

    标题中的“IPV6电视软件 IPV6播放软件”指的是支持IPv6协议的电视及流媒体播放应用程序。在当今网络环境中,IPv6作为一种下一代互联网协议,正在逐渐替代IPv4,以解决地址空间耗尽的问题。这些软件是专为利用IPv6...

    ipv6 编程实例 C++版本

    这个压缩包文件提供了一个C++语言编写的IPv6编程实例,帮助开发者理解和实践IPv6的网络通信。 IPv6相比IPv4有以下几个显著特点: 1. 地址长度:IPv6的地址长度为128位,可以生成3.4x10^38个地址,远超IPv4的4.3x10^...

    ipv6头文件

    - 创建IPv6套接字:使用`socket`函数创建一个IPv6套接字,指定`AF_INET6`作为地址族。 - 绑定IPv6地址:使用`bind`函数将IPv6地址和端口绑定到套接字上。 - 连接/监听:对于服务器,使用`listen`开始监听连接;对于...

    IPV6子网划分工具

    IPv6具有更大的地址空间,提供了3.4×10^38个地址,几乎无限的可能性,使得全球的每粒沙子都可以拥有一个唯一的IP地址。 "IPV6子网划分工具"是一款专为IPv6设计的子网掩码计算器,其目的是帮助网络管理员和IT专业...

    Java实现IPV6地址查询

    2. **创建IPv6Bean对象**:为每个查询的IPv6地址创建一个`IPv6Bean`实例,存储IP地址本身以及后续查询得到的地理位置信息。 3. **执行查询**:在`IpV6Seeker`类中,实现一个方法,接受IPv6地址作为参数,使用ZX库的...

    IPv6 地址/掩码计算器

    "IPv6 地址/掩码计算器"是一个工具,专门用于处理IPv6地址和掩码的计算问题。它可以帮助用户执行以下操作: 1. **地址转换**:将IPv6地址从冒号十六进制格式转换为其他表示形式,如零压缩或全零表示(::)。 2. **...

    ensp实验:ipv6 over ipv4

    IPv6 over IPv4隧道的工作原理是将IPv6的数据包封装在一个IPv4的数据包中,然后通过IPv4网络进行传输。在隧道的两端,这些封装的IPv6数据包会被解封装,恢复成原始的IPv6数据包,从而实现IPv6流量在IPv4网络中的传输...

    TCP_UDP_Server_IPv6

    例如,"TCP_UDP_IPv6"可能是一个用于测试和调试TCP/UDP服务器的工具,它可以提供监听、发送、接收数据的功能,并且可能支持IPv6协议。通过分析提供的文件名,我们可以推测这个工具包含以下组件: 1. `TCP_UDP_IPv6....

    ipv6详解——ipv6学习必备

    IPv6允许用户在移动过程中保持一个固定的IP地址,从而无需频繁地更改IP配置即可实现移动设备的网络接入。 从实施和兼容性的角度来看,IPv6也考虑到了与IPv4的过渡和兼容问题。通过诸如双栈技术、隧道技术等方法,...

Global site tag (gtag.js) - Google Analytics