Validate an IP Address in Java

2025年5月5日 | 阅读 3 分钟

IP 地址是分配给连接到网络的设备的唯一标识符。这些地址保证了设备之间可以相互通信。在本节中,我们将讨论如何使用 Java 验证 IP 地址。 IP 地址分为两种类型。

  1. IPv4: 32 位地址,以点分十进制格式表示,例如 192.168.1.1。
  2. IPv6:128 位地址,以十六进制编写,例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334。

IPv4 地址格式

  • IPv4 地址格式包含八个单独的点。
  • 每个八位字节的值从 0 到
  • 有效格式:XXX.XXX.XXX.XXX,其中 XXX 是一个整数。

IPv6 地址格式

  • 由八组四位十六进制数字组成,用冒号分隔。
  • 可以省略前导零,并且可以使用双冒号 (::) 来替换连续的零。

为什么需要验证 IP 地址?

验证 IP 地址对于

  • 防止网络配置错误。
  • 确保有效的数据传输路径。
  • 避免因地址格式错误而带来的安全风险。

验证 IP 地址的步骤

  1. 验证 IPv4
    • 检查输入是否包含由点分隔的四个部分。
    • 每个部分都应是介于 0 到 255 之间的数字。
    • 除了 0 之外,不允许有前导零。
  2. 验证 IPv6
    • 检查输入是否包含由冒号分隔的八组。
    • 每组应包含有效的十六进制数字。
    • 处理简写表示法 (::)。

Java 程序用于验证 IP 地址

文件名:IPAddressValidator.java

输出

 
192.168.1.1 is IPv4
255.255.255.255 is IPv4
0.0.0.0 is IPv4
256.100.50.0 is Invalid
123.456.789.0 is Invalid
1.1.1.1. is Invalid
::1 is IPv6
2001:0db8:85a3:0000:0000:8a2e:0370:7334 is IPv6
2001:db8::ff00:42:8329 is IPv6
1234::5678:: is Invalid
1200::AB00:1234::2552:7777:1313 is Invalid   

解释

该程序包含用于验证 IPv4 和 IPv6 格式的正则表达式。validateIPv4 方法将 IPv4 地址与 IPv4_REGEX 进行匹配,后者确保每个部分都在有效范围内。类似地,validateIPv6 使用正则表达式来处理 IPv6 格式的复杂性,包括简写和 :: 等特殊情况。

validateIPAddress() 方法确定输入是 IPv4、IPv6 还是无效。main 方法演示了在一组测试 IP 地址上的验证,展示了有效和无效格式的不同场景。

方法的优点

  • 正则表达式:有效定义 IP 地址的有效模式。
  • 可扩展性:易于适应 IP 标准的未来更新。
  • 错误预防:避免网络配置中的不正确数据。

结论

IP 地址验证对于网络安全和功能至关重要。此 Java 实现展示了一种健壮的方法,可确保只处理有效的 IP 地址,从而减少错误并提高系统可靠性。


下一个主题Java 中的 Spy Number