利用boost.asio中的库函数获取本地主机的名字和通过主机名字获取与端口号获取对应的IP地址。
源代码如下:
// Boost others network function.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <boost/asio.hpp>
#include <boost/asio/ip/tcp.hpp>
#include <string>
using namespace boost;
using namespace boost::asio;
int main()
{
//std::cout << "Hello World!\n";
io_service io;
//获得本机的主机名字
std::string hn = ip::host_name();
std::cout << "host name:"<< hn << std::endl;
ip::tcp::resolver res(io);
//下面的代码可以将主机名"www.yahoo.com"转化成相应的IP地址
ip::tcp::resolver::query quer("www.yahoo.com","80");
ip::tcp::resolver::iterator iter = res.resolve(quer);
ip::tcp::endpoint ep = *iter;
std::cout << ep.address().to_string() << std::endl;
}
运行结果如下图所示: