だから私はJavaで簡単なクライアントサーバーアプリケーションを作っています。それが得られるのと同じくらい簡単だと思います、そして、そこにあるIPのいずれかがソケットに接続しようとしているIPと一致する場合、接続を拒否されるいくつかのIPアドレスを持つblacklist.txtを実装しようとしています。私はこれが初めてですが、ここに私が得たものがあります:
ServerSocket server = new ServerSocket(6500);
System.out.println ("Server Started on port 6500");
while (true){//Waiting clients
Socket socket = null;
BufferedReader reader = new BufferedReader(new FileReader("C:\\UNIV\\Redes\\workspace\\Copy of Ex_4.3_Teste\\lists\\blacklist.txt"));
String line = null;
socket = server.accept();
while ((line = reader.readLine()) != null) {
if (line == socket.getInetAddress().toString()) {
System.out.println("IP Blacklisted: " + socket.getInetAddress().toString());
socket.close(); //Refusing connection
}
System.out.println("Line: " + line); //Just checking if reading OK
System.out.println("Socket: " + socket.getInetAddress().toString()); //Just checking if reading OK
}
System.out.println("New connection..");
Thread t = new Thread(new EchoClientThread(socket));
t.start();
}
}
次に、接続しているクライアントごとにスレッドを開始しますが、それは私が求めていることとは関係ないと思います。
全体的な考え方は、IP アドレスが blacklist.txt のいずれかの行と等しい場合、接続を拒否することです。
私は明らかにここに何か問題があります.それは機能していないので、誰かが私を正しい方向に向けることができますか?
とても有難い。
編集: blacklist.txt の内容を忘れました:
/192.168.2.200
/127.0.0.1
からの出力socket.getInetAddress().toString()
が/IP.IP.IP.IP