boost :: asio获取客户端ip

时间:2012-12-17 20:53:26

标签: c++ ip boost-asio

我正在使用boost::asio通过TCP编写服务器。我正试图找到一种方法来阻止localhost之外的连接。我发现的只有this。有:

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

返回“tomasz-lenovo-ideapad-Y530”(这是我机器的名称)。如何从中获取原始ip(“127.0.0.1”或“localhost”)?

1 个答案:

答案 0 :(得分:11)

从提供给定连接的套接字对象。

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