我正在構建一個簡單的客戶機 - 服務器應用程序,並且我想實施某種黑名單驗證。通過網絡進行黑名單驗證的簡單客戶機 - 服務器應用程序
目前我有一個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;
}
}
輸出然後發送給客戶,從而關閉套接字,終止連接。
我想知道是否有任何簡單的方法來做我上面說的。
幫助表示讚賞。
我敢肯定有一個更好的方法,但你可以做一個'字符串#substring'只提取IP地址的重要部分並進行比較 – MadProgrammer