8

boost::asioを使用してTCP経由でサーバーを作成しています。ローカルホストの外部の接続をブロックする方法を見つけようとしています。私が見つけたのはこれだけです。がある:

boost::asio::ip::host_name()

これは「tomasz-lenovo-ideapad-Y530」(これが私のマシンの名前です)を返します。それからrawip("127.0.0.1"または"localhost")を取得するにはどうすればよいですか?

4

1 に答える 1

14

特定の接続を提供するソケットオブジェクトから。

std::cout << "Peer IP: " << socket.remote_endpoint().address().to_string() << std::endl;

参考:他のマシンからの接続を防ぎたい場合は、127.0.0.1をリッスンし、他のインターフェイスをリッスンしないで十分です。これを行うには、次のようなアクセプターを作成する必要があります。

acceptor(io_service, ip::tcp::endpoint(ip::address::from_string("127.0.0.1"), "5555"));

これは、ポート5555でのみ127.0.0.1をリッスンします

于 2012-12-17T21:24:32.090 に答える