六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 43|回复: 0

IPV6检验函数,查看一个TEXT添的IPV6是否正确,火龙果的IPV6验证

[复制链接]

升级  61.3%

726

主题

726

主题

726

主题

探花

Rank: 6Rank: 6

积分
2226
 楼主| 发表于 2013-1-27 05:13:25 | 显示全部楼层 |阅读模式
火龙果的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,   16);       ipv6Byte[2   *   i]   =   (byte)   (k   > >   8);       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   =   (short)Integer.parseInt(ipv6s,   16);           }     return   ipv6Short;   }      //   检验   IPv6   的格式   public   static   boolean   checkIPv6(String   ipv6)   {     return   ipv6.matches( "(\\p{XDigit}){1,4}(:(\\p{XDigit}){1,4}){7} ");   } }  
黑色头发  http://heisetoufa.iteye.com
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表