반응형
boost :: asio :: ip :: tcp :: socket의 IP 주소를 얻는 방법은 무엇입니까?
Boost ASIO 라이브러리를 사용하여 C ++로 서버를 작성하고 있습니다. 내 서버의 로그에 표시 할 클라이언트 IP의 문자열 표현을 얻고 싶습니다. 누구든지 그것을하는 방법을 알고 있습니까?
소켓에는 원격 끝점을 검색하는 기능이 있습니다. 이 (오래된) 명령 체인을 사용하면 원격 끝 IP 주소의 문자열 표현을 검색해야합니다.
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());
참조 URL : https://stackoverflow.com/questions/601763/how-to-get-ip-address-of-boostasioiptcpsocket
반응형
'Programing' 카테고리의 다른 글
Kubernetes에서 복제 컨트롤러 VS 배포 (0) | 2021.01.08 |
---|---|
“autofillHints 속성 누락” (0) | 2021.01.07 |
PHP에서 람다는 무엇을 사용합니까? (0) | 2021.01.07 |
PI = 4 * ATAN (1.d0)을 정의하는 이유 (0) | 2021.01.07 |
자바에서 양방향지도를 만드는 방법 (0) | 2021.01.07 |