1

だから私は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

4

1 に答える 1