c – boost :: asio获取客户端ip

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

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

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

最佳答案
从提供给定连接的套接字对象.

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

转载注明原文:c – boost :: asio获取客户端ip - 代码日志