判断子网掩码和ip地址的合法性[java]

本文介绍了如何使用Java判断子网掩码的合法性,规定子网掩码必须满足前部分为1,后部分为0,且每个十进制数不超过255。同时,文章还涉及了IP地址的合法性检查,包括A、B、C、D、E五类IP地址的范围,并明确了0.x.x.x和127.x.x.x的特殊性。最后,讲解了如何判断私有IP地址是否在10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255, 192.168.0.0-192.168.255.255这三个范围内。" 85636038,1511119,Kafka与RabbitMQ:原理、应用场景及对比分析,"['消息队列', 'Kafka', 'RabbitMQ', '分布式系统', '数据处理']
摘要由CSDN通过智能技术生成

判断子网掩码和ip地址的合法性[java]

子网掩码

子网掩码由4段构成,比如255.255.255.0

每一数字都可以转化为8位二进制数字,一共32位

比如 255.255.255.0 可以化为

11111111 11111111 11111111 00000000

子网掩码如果想合法,则需要满足:二进制数前面都是1,后面都是0。同时每一个数字是不可以大于255的。因为大于255,二进制数就会超过8位。

255.255.255.0就是一个合法的子网掩码,因为其前24位是1,后8位都是0。

255.255.255.32就不是一个合法的子网掩码,其转化成二进制数为

11111111 11111111 11111111 00100000

如果子网掩码不满足前面都是1后面都是0,则不是一个合法的子网掩码。

都是1,或者都是0,同样不合法。

代码如下

public static boolean isMask(String mask){
   
		String[] split = mask.split("\\.");
		StringBuilder sb = new StringBuilder();
		for (String s : split) {
   
			if(s.trim().equals("")){
   
				return false;
			}
			int i = Integer.parseInt(s);
			//如果有数字大于255,则直接返回false
			if (i > 255) {
   
				return false;
			}
			String binary = Integer.toBinaryString(i);
			//如果长度小于8,则在前面补0
			while (binary.length() < 8) {
   
			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值