java IPv6 地址校验如何写
时间: 2023-08-08 12:12:33 浏览: 106
Java实现IPV6地址查询
5星 · 资源好评率100%
IPv6 地址由 8 组 16 位的十六进制数表示,每组使用冒号分隔。为了使 IPv6 地址长度更短,IPv6 还支持使用连续的 0 值来缩短地址,可以使用双冒号 (::) 表示一组或多组连续的 0,但只能使用一次。
以下是一个 Java 方法,可以校验 IPv6 地址是否合法:
```java
public static boolean isValidIPv6(String ip) {
String regex = "^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$|^(?:(?=(?:[A-F0-9]{0,4}:){0,7}[A-F0-9]{0,4}$)(?:(?:25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.?){4})$";
return ip.matches(regex);
}
```
该方法使用正则表达式来验证 IPv6 地址。如果输入的字符串符合 IPv6 地址的格式,返回 true,否则返回 false。
示例:
```java
String ip1 = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";
String ip2 = "2001:0db8:85a3::8a2e:0370:7334";
String ip3 = "2001:0db8:85a3::8a2e:0370:73341";
String ip4 = "192.168.0.1";
System.out.println(isValidIPv6(ip1)); // true
System.out.println(isValidIPv6(ip2)); // true
System.out.println(isValidIPv6(ip3)); // false
System.out.println(isValidIPv6(ip4)); // false
```
阅读全文