如何验证 IP 地址在 Java 上是否有效?

How to verify if a IP address is valid on Java?

我想验证 java 中的 IP 地址,我该怎么做? IP 地址需要采用以下格式:xxx.xxx.xxx.xxx 每个八位字节范围必须是 0 ~ 255.

由于 IP 已验证,代码必须显示一条消息,告知 IP 是否有效。如果不是,用户必须再次输入 IP。

到目前为止,我已经完成了将 IP 字符串转换为整数数组的方法...


public static void verify() {
        Scanner input = new Scanner(System.in);     
        System.out.println("IP: (xxx.xxx.xxx.xxx)");
        String ipAddress = input.nextLine();
        int[] arrayIpAddress = Arrays.stream(ipAddress.split("\.")).mapToInt(Integer::parseInt).toArray();
}

在您的特定场景中,您可以添加过滤器并检查生成的数组长度:

String ipAddress = input.nextLine();
boolean ipValid = Arrays
  .stream(ipAddress.split("\."))
  .mapToInt(Integer::parseInt)
  .filter(x -> x >= 0 && x <= 255) // remove invalid numbers
  .toArray().length == 4; // if the resulting length is 4, the ip is valid

注意:如果Integer.parseInt抛出异常(即如果用户输入了一些字母),您的方法将失败,并且即使存在IP也会认为IP有效一些额外的点(如 192.168.0.1.