提问人:SOJSON用户
提问日期:2019-11-15 14:21
热度:980
用Java怎么判断一个IP是IPV6还是IPV4?最好是用正则表达式。
1条回答
我来回答
soゝso|
2019-11-15 14:24
直接上代码
public static void main(String[] args) {
//IPV6测试
String ip1 = "240e:c0:f4a0:82dc:e009:b4a8:266b:8e98";
//ipv4 测试
String ip2 = "225.54.3.1";
System.out.println("ip1:" + validIPAddress(ip1));
System.out.println("ip2:" + validIPAddress(ip2));
}
public static String validIPAddress(String ip){
String ipv4 = "^((\\d|[1-9]\\d|1\\d\\d|2([0-4]\\d|5[0-5]))\\.){4}$";
//8个1-4位+:
String ipv6 = "^(([\\da-fA-F]{1,4}):){8}$";
return String.format("%s.", ip).matches(ipv4) ? "IPv4" : String.format("%s:", ip).matches(ipv6)? "IPv6" : "Neither";
}