以下代码已经过工业级效验,已满足我厂应用的需要。如有问题,可于我留言,谢谢。
代码块
/** * 将ipv4转为32 bit. 返回结果cidr的二个部分 * * @param ip * @return * @throws IPv4Exception */ public static int[] convert2Bit32(String ip) throws IPv4Exception { int[] result = { 0, NULL_NET }; String[] cidr = ip.split("\\/" , -1); if (cidr.length > 2 || cidr.length == 0) { throw new IPv4Exception("Invalid IPv4 " + ip); } else if (cidr.length == 2) { if (!isPositive(cidr[1])) { throw new IPv4Exception("Invalid IPv4 " + ip); } result[1] = Integer.parseInt(cidr[1]); if (result[1] < 0 || result[1] > 32) { throw new IPv4Exception("Invalid IPv4 " + ip); } else if (result[1] == 0 && !"0.0.0.0".equals(cidr[0])) { throw new IPv4Exception("Invalid IPv4 " + ip); } } String[] addr = cidr[0].split("\\." , -1); if (addr.length != 4) { throw new IPv4Exception("Invalid IPv4 " + ip); } for (String f : addr) { if (!isPositive(f)) { throw new IPv4Exception("Invalid IPv4 " + ip); } int n = Integer.parseInt(f); if (n < 0 || n > 255) { throw new IPv4Exception("Invalid IPv4 " + ip); } result[0] = (result[0] << 8) | n; } return result; private static boolean isPositive(String val) { if (val == null || val.length() == 0) { return false; } int n = val.length(); if (n == 0 || n > 3) { //此处可以不加限制,即127.0.0.00001也是正确ip return false; } for (int i = 0; i < n; i++) { if (!Character.isDigit(val.charAt(i))) { return false; } } return true; } }
注意:
- 效验方法 :请调用convert2Bit32方法完成效验
- split :使用split(String regex,int limit),将limit设置为-1,来防止split将分割后的字符串结尾空字符串丢弃。这样就消除了出现将“127.0.0.1.”效验为正确的bug。
- 浏览: 159474 次
- 性别:
- 来自: 西安
最新评论
-
qiaoshi:
devilyard 写道qiaoshi 写道devilyard ...
eclipse漂亮主题MoonRise UI,比eclipse自带的漂亮很多 -
devilyard:
qiaoshi 写道devilyard 写道有没有什么bug的 ...
eclipse漂亮主题MoonRise UI,比eclipse自带的漂亮很多 -
qiaoshi:
devilyard 写道有没有什么bug的我在eclipse ...
eclipse漂亮主题MoonRise UI,比eclipse自带的漂亮很多 -
devilyard:
有没有什么bug的
eclipse漂亮主题MoonRise UI,比eclipse自带的漂亮很多 -
serisboy:
楼主不错!!!
win7安装hadoop及eclipse调试mapreduce的配置方法
相关推荐
使用EXCEL制作的IPv4无分类编址工具。给定一个IP地址及其前缀长度,立即计算其子网地址、对应Net Musk、广播地址及有效IP地址。
中国各省IP地址库CIDR格式第一批
CIDR(Classless Inter-Domain Routing,无类域间路由)是一种用于更有效地分配和管理IPv4地址空间的机制,它取代了传统的A、B、C类地址划分方式。此IP地址库的第三批数据包含了中国不同省份和直辖市的CIDR格式IP...
shell实现netmask掩码和cidr掩码位转换 Shell 实现 Netmask 掩码和 CIDR 掩码位转换是一种常用的网络协议 软件/插件,经常在写脚本时需要实现掩码位和掩码之间的转换。下面将详细介绍 Shell 实现 Netmask 掩码和 ...
例如,在大型网络环境中,通过CIDR表示的IP段,可以更高效地分配和管理IP地址,同时,也能在路由表中节省空间。 通过阅读和理解`IpRouter.java`的源代码,我们可以深入了解CIDR在编程中的实现细节,以及如何利用...
与IPv4和IPv6 CIDR网络列表配合使用的工具 安装 $ npm i cidr-tools 例子 const cidrTools = require ( 'cidr-tools' ) ; cidrTools . merge ( [ '1.0.0.0/24' , '1.0.1.0/24' ] ) ; //=> ['1.0.0.0/23'] cidrTools...
总结来说,基于IPv4的局域网IP地址分配关键技术研究主要涉及IP地址的结构、分类、分配方法以及IP地址资源的管理和优化,对于理解和设计有效的局域网IP地址分配方案至关重要。随着IPv6的推广,这些知识仍然是理解网络...
它提供了全面的功能,涵盖了IPv4、IPv6以及CIDR(无类别域间路由)的处理,使得在编程中进行IP操作变得更加简单和高效。 ### Nim 语言介绍 Nim 是一种现代、静态类型的系统编程语言,它融合了C的性能、Python的易读...
实现批量的IP地址,或地址段的排序并按照CIDR格式最小化聚合。 需要聚合的IP段放在ip.list文件中,聚合后的IP在文件new_ip.list # 按照序号循环IP列表 for i in range(len(IpIntList)): # 前一个IP prev_ip = ...
CIDR(Classless Inter-Domain Routing)是一种用于更有效地分配和路由IPv4地址空间的方法,它取代了传统的基于类的网络划分方式。CIDR的主要特点是使用斜杠“/”后的数字来表示网络前缀的位数,这个数字被称为CIDR...
java判断IP是否在指定范围内,支持IPV4和IPV6。
CIDR的主要特点是将IP地址和路由前缀结合,允许更加灵活的子网划分和路由聚合。 1. **CIDR对应表**:CIDR不再依赖于传统的A、B、C类地址划分,而是使用斜杠“/”后跟一个数字来表示网络部分的位数。例如,192.168....
描述中提到的“计算方式人性化”,意味着该计算器可能提供了直观和用户友好的界面,帮助用户执行如子网划分、掩码计算、CIDR(Classless Inter-Domain Routing)表示法转换、广播地址和网络地址计算等常见的IPv4操作...
用于处理IPv4和IPv6的IP地址和子网的库 ,打包为OSGI软件包,打包为和 Maven组ID:com.github.seancfoley Maven工件ID: Maven的版本: , , , 自5.3.1版起的OSGI捆绑包:com.github.seancfoley.ipaddress ...
IPv4和IPv6范围可用。 直接从AFRINIC,APNIC,ARIN,LACNIC和RIPENCC数据进行编译。 重复数据删除和子网合并以提高效率。 按国家/地区顶级域名(TLD)进行了简化和分类。 CIDR表示法。 每小时更新一次,仅在进行...
在IT领域,网络通信是至...总的来说,IP地址、子网划分、VLSM和CIDR是构建和管理网络基础架构的核心概念。理解并熟练运用这些知识,对于网络管理员和IT专业人士来说至关重要,能够确保网络的有效运行和资源的优化利用。
npm install ip-cidr 关于 用于CIDR的模块(v4,v6)。 基于 。 例子 const IPCIDR = require ( "ip-cidr" ) ; const BigInteger = require ( "jsbn" ) . BigInteger ; const cidr = new IPCIDR ( "50.165.190.0/23...
安装npm install ipcheck --save 用法快的为了轻松检查IP和CIDR而没有任何额外的刺激... var IPCheck = require ( 'ipcheck' ) ;IPCheck . match ( '192.168.0.1' , '192.168.0.1/32' ) ; //= true普通的允许您单独...