8

我正在使用boost::asio通过 TCP 编写服务器。我试图找到一种方法来阻止本地主机之外的连接。我唯一发现的是这个。有:

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

它返回“tomasz-lenovo-ideapad-Y530”(这是我机器的名称)。如何从中获取原始 ip(“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 回答