生成IP白名单校验的Java代码
时间: 2023-10-26 09:07:35 浏览: 86
tencentyun#qcloud-documents#IP黑白名单_intl1
以下是一个生成IP白名单校验的Java代码示例:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IpWhiteListValidator {
private List<Pattern> whiteList;
public IpWhiteListValidator(List<String> ipList) {
whiteList = new ArrayList<>();
for (String ip : ipList) {
whiteList.add(Pattern.compile(ipToRegex(ip)));
}
}
public boolean validate(String ip) {
for (Pattern pattern : whiteList) {
Matcher matcher = pattern.matcher(ip);
if (matcher.matches()) {
return true;
}
}
return false;
}
private String ipToRegex(String ip) {
String[] parts = ip.split("\\.");
StringBuilder regex = new StringBuilder();
for (String part : parts) {
if (part.equals("*")) {
regex.append("\\d{1,3}");
} else {
regex.append(part);
}
regex.append("\\.");
}
regex.deleteCharAt(regex.length() - 1);
return regex.toString();
}
}
```
该代码包含一个`IpWhiteListValidator`类,它接受一个IP地址列表并生成一个包含正则表达式的白名单。`validate`方法接受一个IP地址并将其与白名单中的正则表达式进行匹配。`ipToRegex`方法将IP地址转换为正则表达式。使用`*`作为通配符。例如,`192.168.*.*`将被转换为`192\.168\.\d{1,3}\.\d{1,3}`。
阅读全文