كيفية الحصول على عنوان IP من دفعة :: :: اسيو الملكية الفكرية :: برنامج التعاون الفني :: مأخذ؟

StackOverflow https://stackoverflow.com/questions/601763

سؤال

وأنا أكتب الخادم في 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());
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top