欢迎访问宙启技术站
智能推送

编写一个Java函数来检查IP地址格式是否合法

发布时间:2023-08-09 03:58:12

下面是一个用Java编写的函数,用于检查IP地址格式是否合法。该函数接受一个字符串参数,即要检查的IP地址。如果IP地址格式合法,则返回true,否则返回false。

public static boolean isValidIP(String ipAddress) {
    if (ipAddress == null || ipAddress.isEmpty()) {
        return false;
    }
    
    // 使用正则表达式来验证IP地址格式
    String pattern = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";
    
    return ipAddress.matches(pattern);
}

这个函数使用了一个正则表达式来验证IP地址的格式。正则表达式的模式是:

^
(
    (
        [0-9]            // 一个数字(0-9)
        |
        [1-9][0-9]       // 两位数,      位不能为0
        |
        1[0-9]{2}        // 三位数,以1开头的
        |
        2[0-4][0-9]      // 三位数,以2开头,第二位为0-4的数字
        |
        25[0-5]          // 三位数,以25开头,第三位为0-5的数字
    )
    \.                    // 点分隔符
){3}                      // 上面的组合出现3次
(
    [0-9]                // 最后一组只有一个数字
    |
    [1-9][0-9]           // 最后一组是两位数,      位不能为0
    |
    1[0-9]{2}            // 最后一组是三位数,以1开头的
    |
    2[0-4][0-9]          // 最后一组是三位数,以2开头,第二位为0-4的数字
    |
    25[0-5]              // 最后一组是三位数,以25开头,第三位为0-5的数字
)
$

这个正则表达式可以验证IP地址的格式是否满足以下要求:

- IP地址由4个数字组成,每个数字范围为0-255。

- 每个数字之间使用点(.)分隔。

- IP地址的每个数字不能以0开头,除非该数字本身为0。

使用这个函数可以检查任意字符串是否是合法的IP地址。例如:

String ip1 = "192.168.0.1";
System.out.println(isValidIP(ip1));   // 输出 true

String ip2 = "256.0.0.1";
System.out.println(isValidIP(ip2));   // 输出 false

String ip3 = "127.0.0.01";
System.out.println(isValidIP(ip3));   // 输出 false

String ip4 = "192.168..1";
System.out.println(isValidIP(ip4));   // 输出 false

以上示例中,只有ip1是合法的IP地址,其他三个字符串都不满足IP地址的格式要求。