C++ boost::asio編程-域名解析詳細(xì)介紹
更新時間:2016年11月29日 15:18:08 投稿:lqh
這篇文章主要介紹了C++ boost::asio編程-域名解析詳細(xì)介紹的相關(guān)資料,這里附有實例代碼,幫助大家學(xué)習(xí)理解這部分知識,需要的朋友可以參考下
C++ boost::asio編程-域名解析
在網(wǎng)絡(luò)通信中通常我們并不直接使用IP地址,而是使用域名。這時候我們就需要用reslover類來通過域名獲取IP,它可以實現(xiàn)
與IP版本無關(guān)的網(wǎng)址解析。
#include "stdafx.h" #include "boost/asio.hpp" #include "boost/shared_ptr.hpp" #include "boost/thread.hpp" #include <boost/lexical_cast.hpp>//使用字符串轉(zhuǎn)換功能 using namespace std; using namespace boost::asio; #ifdef _MSC_VER #define _WIN32_WINNT 0X0501 //避免VC下編譯警告 #endif //域名解析為IP //入?yún)ⅲ河蛎?,端? //返回:ip地址 vector<string> domain2ip(const char *domain,int port) { io_service ios; //創(chuàng)建resolver對象 ip::tcp::resolver slv(ios); //創(chuàng)建query對象 ip::tcp::resolver::query qry(domain,boost::lexical_cast<string>(port));//將int型端口轉(zhuǎn)換為字符串 //使用resolve迭代端點 ip::tcp::resolver::iterator it=slv.resolve(qry); ip::tcp::resolver::iterator end; vector<string> ip; for(;it!=end;it++) { ip.push_back((*it).endpoint().address().to_string()); } return ip; } int _tmain(int argc, _TCHAR* argv[]) { vector<string> ip=domain2ip("www.csdn.net",0); for(int i=0;i<ip.size();i++) { cout<<ip[i]<<endl; } getchar(); return 0; }
其中經(jīng)過測試,端口可以填任意值均可以解析出來。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
用C++實現(xiàn)一個命令行進(jìn)度條的示例代碼
這篇文章主要介紹了用C++實現(xiàn)一個命令行進(jìn)度條的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Qt利用QState狀態(tài)機實現(xiàn)控件互斥操作詳解
這篇文章主要為大家詳細(xì)介紹了Qt如何利用QState狀態(tài)機實現(xiàn)控件互斥操作,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12