Java 校验IP地址

引言

IP地址是计算机网络中用于唯一标识设备的数字地址,它是网络通信的基础。在Java中,我们经常需要对IP地址进行校验,以确保其格式的正确性。本文将介绍如何使用Java编程语言来校验IP地址,并提供相应的代码示例。

IP地址的格式

IP地址通常由四个十进制数值组成,每个数值的范围是0-255,用点号(.)分隔。例如,常见的IP地址格式是"192.168.0.1"。在校验IP地址时,我们需要确保IP地址的每个数值都在合法范围内,并且用点号分隔的位置正确。

校验IP地址的方法

校验IP地址的方法可以分为两步:

  1. 校验IP地址的格式是否正确;
  2. 校验IP地址的每个数值是否在合法范围内。

以下是一个简单的Java代码示例,演示了如何校验IP地址的格式:

public class IpAddressValidator {
    public static boolean isValidIpAddress(String ipAddress) {
        String[] parts = ipAddress.split("\\.");

        if (parts.length != 4) {
            return false;
        }

        for (String part : parts) {
            try {
                int value = Integer.parseInt(part);
                if (value < 0 || value > 255) {
                    return false;
                }
            } catch (NumberFormatException e) {
                return false;
            }
        }

        return true;
    }
}

以上代码中,isValidIpAddress方法接收一个IP地址作为参数,并返回一个布尔值,表示该IP地址是否合法。代码首先使用点号(.)将IP地址拆分为四个部分,然后逐个检查每个部分是否是一个合法的十进制数值。如果IP地址的长度不等于4或者任何一个部分不是合法的十进制数值,则返回false。否则,返回true。

这个代码示例只校验了IP地址的格式,但没有校验每个数值是否在合法范围内。我们可以在上述代码的基础上进一步完善,以实现完整的IP地址校验。

以下是一个增强版的Java代码示例,演示了如何校验IP地址的格式和范围:

public class IpAddressValidator {
    public static boolean isValidIpAddress(String ipAddress) {
        String[] parts = ipAddress.split("\\.");

        if (parts.length != 4) {
            return false;
        }

        for (String part : parts) {
            try {
                int value = Integer.parseInt(part);
                if (value < 0 || value > 255) {
                    return false;
                }
            } catch (NumberFormatException e) {
                return false;
            }
        }

        return true;
    }

    public static boolean isValidIpAddressWithRange(String ipAddress, int startRange, int endRange) {
        if (!isValidIpAddress(ipAddress)) {
            return false;
        }

        String[] parts = ipAddress.split("\\.");

        int value = Integer.parseInt(parts[3]);
        return value >= startRange && value <= endRange;
    }
}

在上述代码中,我们新增了一个isValidIpAddressWithRange方法,用于校验IP地址的范围。该方法首先调用isValidIpAddress方法校验IP地址的格式,如果格式不正确,则直接返回false。然后,提取IP地址的最后一部分数值,并检查其是否在给定的范围(startRangeendRange)内。

使用示例

以下是一个使用示例,演示了如何调用上述代码来校验IP地址:

public class Main {
    public static void main(String[] args) {
        String ipAddress = "192.168.0.1";
        int startRange = 0;
        int endRange = 255;

        if (IpAddressValidator.isValidIpAddress(ipAddress)) {
            System.out.println("IP地址格式正确");
        } else {
            System.out.println("IP地址格式不正确");
        }

        if (IpAddressValidator.isValidIpAddressWithRange(ipAddress, startRange, endRange)) {
            System.out.println("IP地址在范围内");
        } else {
            System.out.println("IP地址不在范围内");
        }
    }
}

在上述示例中,我们首先定义了一个IP地址("192.168.0.1")和一个范围(0-255)。然后,我们调用`isValid