如何获得boost :: asio :: ip :: tcp :: socket的IP地址?

我正在使用Boost ASIO库在C ++中编写服务器。 我希望获得客户端IP的string表示,以显示在我的服务器日志中。 有谁知道如何做到这一点?

套接字有一个function,将检索远程端点。 我想给这个(long-ish)命令链,他们应该检索远程端IP地址的string表示forms:

asio::ip::tcp::socket socket(io_service); // Do all your accepting and other stuff here. asio::ip::tcp::endpoint remote_ep = socket.remote_endpoint(); asio::ip::address remote_ad = remote_ep.address(); std::string s = remote_ad.to_string(); 

或单行版本:

 asio::ip::tcp::socket socket(io_service); // Do all your accepting and other stuff here. std::string s = socket.remote_endpoint().address().to_string(); 

或者,更容易,用boost::lexical_cast

 #include <boost/lexical_cast.hpp> std::string s = boost::lexical_cast<std::string>(socket.remote_endpoint());