我正在构建一个简单的客户端-服务器应用程序,我想对其实施某种黑名单验证。
目前我有一个 IP 黑名单验证工作,它从文件(blacklist.txt)中读取一个字符串,并将其与套接字 IP 地址进行比较。如果相等,则客户端被拒绝。
我现在想要实现的是某种网络黑名单验证,而不是 IP。
假设我的“blacklist.txt”上有 192.168.1.0/24。我需要阻止从 192.168.1.1 到 192.168.1.255 的任何连接。
这是我目前用于 IP 黑名单验证的代码:
BufferedReader reader = new BufferedReader(new FileReader("C:\\Users\\Joao\\git\\ProjectoRedes\\lists\\blacklist.txt"));
String line = null;
socket = server.accept();
// Blacklist verification - Do in single thread
while ((line = reader.readLine()) != null) {
if (line.equals(socket.getInetAddress().toString())) {
System.out.println("IP Blacklisted: " + socket.getInetAddress().toString());
System.out.println("Closing connection to " + socket.getInetAddress().toString());
PrintStream checkBlack = new PrintStream(socket.getOutputStream(),true);
checkBlack.println("***BLACKLISTED***");
reader.close();
socket.close();
break;
}
}
然后将输出发送到客户端,客户端关闭套接字,终止连接。
我想知道是否有任何简单的方法来做我上面所说的。
帮助表示赞赏。