ipv4校验(java)
背景:
在开发的过程中我们很容易遇到对输入参数进行校验的情况,其中就包括对ip地址进行校验。
规则:
Ipv4地址分为ABCDE五大类,其中ABC类是普通ip地址,D类是组播地址,E类保留,作为研究之用。
范围分别为:
A: 1.0.0.1 一127.255.255.255
内网地址范围:10.0.0.0 一一10-255.255.255
B: 128.0.0.1 —191.255.255.255
内网地址范围:172.16.0.0——172.31.255.255
C: 192.0.0.1 —223.255.255.255
内网地址范围:192.168.0.0—一192.168.255.255
D: 224.0.0.1 —239.255.255.255
E: 240.0.0.1 —255.255.255.255
我们的正则要求ip必须是ABC类地址。
代码:
import java.text.Normalizer;
import java.text.Normalizer.Form;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class IPV4Test {public static void main(String[] args) {String ip1 = "127.0.0.1";String ip2 = "255.255.36.6";System.out.println("check > " + ip1 + " > " + isValidIpv4Addr(ip1));System.out.println("check > " + ip2 + " > " + isValidIpv4Addr(ip2));}public static boolean isValidIpv4Addr(String ipAddr) {String regex = "(^((22[0-3]|2[0-1][0-9]|[0-1][0-9][0-9]|([0-9]){1,2})"+ "([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|([0-9]){1,2})){3})$)";if (ipAddr == null) {System.out.println("ip addresss is null ");return false;}ipAddr = Normalizer.normalize(ipAddr, Form.NFKC);Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(ipAddr);boolean match = matcher.matches();if (!match) {// System.out.println("invalid ip addresss = " + ipAddr);}return match;}}
测试结果:
check > 127.0.0.1 > true check > 255.255.36.6 > false |
ipv4校验(java)相关推荐
- spring入参为指定值,校验java入参的值为规定的值,利用Validator指定值校验注解——一看就会
我们在使用spring项目的时候,经常使用@Valid来对入参进行校验,比如必须为空,必须不为空,长度多少,是否符合邮件格式等等,同时也可以正则. 如下图所示, @Null(message = &qu ...
- 身份证号码校验java
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
- java 护照校验,Java应用中的数据校验
翻译:叩丁狼教育吴嘉俊 [译者注:这篇文章是开源项目CUBA Platform的作者,在这篇文章中,作者阐述了CUBA平台中关于数据校验的设计思想和使用方式,可以作为大家在设计数据校验方面一个比较好的 ...
- java url正则校验,Java正则验证
import java.util.regex.*; public final class RegExpValidator { /** * 验证邮箱 * @param 待验证的字符串 * @return ...
- java验证域名_域名规则校验Java版本
package util; import java.io.UnsupportedEncodingException; import java.util.regex.Matcher; import ja ...
- java xsd校验,java中使用xsd验证xml | 学步园
1. 首先要导入包,axiom包请到apache上下载 2. xsd和xml 文件放在工程 bin路径下即可. package xmlValidate; import java.io.ByteArra ...
- 16进制 BCC校验(异或校验) Java代码
BCC校验小知识 BCC(Block Check Character/信息组校验码),因校验码是将所有数据异或得出,故俗称异或校验.具体算法是:将每一个字节的数据(一般是两个16进制的字符)进行异或后 ...
- CRC校验 java modbus
/*** crc16 X16+x15+x2+1* 16进制报文是 02 03 00 00 00 40 CRC16* 传输的str:"020300000040"* 结果:4409* ...
- 全国组织机构统一社会信用代码校验 - Java 版
主要是网上错误的代码太多,为了避免大家踩坑,特此更正,详细规则如下: GB 32100-2015 法人和其他组织统一社会信用代码编码规则 private static final String BAS ...
最新文章
- 日志库EasyLogging++学习系列(6)—— 日志记录器
- mac 下配置连接Linux服务器方法,上传下载文件操作
- 八种基本排序方式(插入排序,希尔排序,选择排序,冒泡排序,快速排序,堆排序,归并排序,基数排序)代码模板以及时间复杂度
- 前端学习(3173):react-hello-react之todoList教程
- ApacheCN JavaWeb 译文集 20211017 更新
- 前端—每天5道面试题(7)
- 41.字符串函数(三)
- SQL中JOIN和UNION区别及用法
- 兆骑科创平台创新创业赛事路演,投融资服务
- java pdf打印_Java 打印PDF文档的3种方法
- 小活动大收获,大叔做烧烤摊,两周收款10万,竟如此简单!
- 年仅 28 岁就宣布从字节跳动退休?
- Opengl glm配置出错
- 听湖畔大学:史玉柱谈企业文化
- 研究调查脉搏血氧饱和度仪使用Masimo RRp(R)读取儿科患者呼吸率的精度
- 经典的10句人生箴言
- spring boot项目使用ojdbc8连接oracle 12c(12.2.0.1.0),解决启动极慢问题!
- Could not open the editor: URLDecoder: Illegal hex characters in escape (%) pattern - For input stri
- 嫉妒(译本)--- 作者:弗兰西斯•培根
- listen函数详解
热门文章
- Vupsen, Pupsen and 0 思维,凑系数
- python.exe在哪个文件_pythonexe文件中的images文件夹放在哪里?
- linux管道原子性写入,write(2)/ read(2)linux中进程之间的原子性
- jsonobject中getkey_FastJson中JSONObject用法及常用方法总结
- 这几种Java异常处理方法,你会吗?
- ElasticSearch集成SpringData史上最全查询教程
- python数值运算符也叫内置运算符_Python全栈工程师(数值类型、运算符)
- 性能测试工具_磁盘性能测试工具fio
- 页面饼图不显示_教你烙饼的懒人做法,不沾手不揉面,比蛋糕还香,凉了更好吃...
- sqlite常见使用总结