JSON在线解析

提问人:SOJSON用户 提问日期:2019-11-15 14:21 热度:980
问题标签 Java 正则 IP

用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";
}