java 判断是否合法的 ip 地址
时间: 2024-10-18 11:21:09 浏览: 28
Java 判断IP地址的合法性实例详解
在 Java 中,判断一个字符串是否表示有效的 IP 地址,通常需要编写正则表达式来匹配常见的 IP 地址格式。IPv4地址有四个部分,每部分介于0到255之间,可以是十进制、十六进制或者点分十进制形式。IPv6地址则更为复杂,需要检查八组冒号分割的十六进制数字。
下面是一个简单的 Java 方法示例,用于判断 IPv4 地址:
```java
import java.util.regex.Pattern;
public class IPAddressValidator {
private static final String IPv4_PATTERN =
"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$";
public static boolean isValidIPv4(String ipAddress) {
return Pattern.matches(IPv4_PATTERN, ipAddress);
}
// 对于IPv6的验证可能会更复杂,这里仅做IPv4示例
}
```
如果你想同时处理IPv4和IPv6,可以使用`java.net.InetAddress`类来尝试解析输入的地址,如果成功解析则为有效,失败则无效:
```java
import java.net.InetAddress;
import java.net.UnknownHostException;
public class IPAddressValidator {
public static boolean isValid(String ipAddress) {
try {
InetAddress inetAddress = InetAddress.getByName(ipAddress);
return inetAddress.isAnyLocalAddress() || inetAddress.isSiteLocalAddress() ||
inetAddress.isLoopbackAddress() || inetAddress.isLinkLocalAddress() ||
!inetAddress.isMulticastAddress();
} catch (UnknownHostException e) {
return false;
}
}
}
```
阅读全文