1. 概述
在这个简短的教程中,我们将了解如何在Java中验证IPv4地址。
2. IPv4验证规则
我们的有效IPv4地址采用“x.x.x.x”形式,其中每个x是0 <= x <= 255范围内的数字,没有前导0,并由点分隔。
以下是一些有效的IPv4地址:
- 192.168.0.1
- 10.0.0.255
- 255.255.255.255
这是无效的:
- 192.168.0.256(值高于255)
- 192.168.0(只有3个八位字节)
- .192.168.0.1(以“.”开头)
- 192.168.0.01(有前导0)
3. 使用Apache Commons Validator
我们可以使用Apache Commons Validator库中的InetAddressValidator类来验证我们的IPv4或IPv6地址。
让我们将依赖项添加到pom.xml文件中:
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.7</version>
</dependency>
然后,我们只需要使用InetAddressValidator对象的isValid()方法:
InetAddressValidator validator = InetAddressValidator.getInstance();
validator.isValid("127.0.0.1");
4. 使用Guava
或者,我们可以使用Guava库中的InetAddresses类来实现相同的目标:
InetAddresses.isInetAddress("127.0.0.1");
5. 使用正则表达式
最后,我们还可以使用正则表达式:
String regex = "^((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(ip);
matcher.matches();
在这个正则表达式中,((25[0-5] | (2[0-4] | 1\\d | [1-9] | )\\d)\\.?\\b)是一个重复四次以匹配IPv4地址中的四个八位字节的组。以下匹配每个八位字节: |
- 25[0-5]:这匹配250到255之间的数字
-
(2[0-4] 1\\d [1-9]):这匹配200 – 249、100 – 199和1 – 9之间的数字 - \\d:这匹配任何数字(0-9)
- \.?:这匹配可选的点(.)字符
- \\b:这是一个单词边界
因此,此正则表达式匹配IPv4地址。
6. 总结
总之,我们学习了在Java中验证IPv4地址的不同方法。
与往常一样,本教程的完整源代码可在GitHub上获得。
Show Disqus Comments
Post Directory
扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章