POCO库中文编程参考指南(9)Poco::Net::DNS
1 Poco::Net::DNS
namespace Poco {
namespace Net {
class Net_API DNS {
public:
static HostEntry hostByName(const std::string& hostname);
static HostEntry hostByAddress(const IPAddress& address);
static HostEntry resolve(const std::string& address);
static IPAddress resolveOne(const std::string& address);
static HostEntry thisHost();
static std::string hostName();
};
}
}
HostEntry 中存储 host primary name(canonical name)、alias name list、IP address list。
2 相关 API
得到一个 HostEntry 实例:
const HostEntry& entry = DNS::hostByName("google.com");
输出域名:
std::cout << entry.name() << std::endl;
Address 和 Alias:
const HostEntry::AliasList& aliases = entry.aliases();
const HostEntry::AddressList& addrs = entry.addresses();
3 Source code
POCO 的官方文档中的 Sample 有错误,以下提供一个正确的示例,其中域名是通过参数传入的。
#include "Poco/Net/DNS.h"
#include <iostream>
using Poco::Net::DNS;
using Poco::Net::IPAddress;
using Poco::Net::HostEntry;
int main(int argc, char** argv)
{
if (argc != 2) {
std::cout << "Invalid argument number." << std::endl;
}
const HostEntry& entry = DNS::hostByName(argv[1]);
std::cout << "Canonical Name: " << entry.name() << std::endl;
const HostEntry::AliasList& aliases = entry.aliases();
for (HostEntry::AliasList::const_iterator it = aliases.begin();
it != aliases.end(); ++it)
std::cout << "Alias: " << *it << std::endl;
const HostEntry::AddressList& addrs = entry.addresses();
for (HostEntry::AddressList::const_iterator it = addrs.begin();
it != addrs.end(); ++it)
std::cout << "Address: " << it->toString() << std::endl;
return 0;
}
编译:
$ g++ name_solver.cpp -o name_solver \
-I/usr/local/include -I/usr/local/lib -lPocoNet
运行:
$ ./name_solver baidu.com
Canonical Name: baidu.com
Address: 123.125.114.144
Address: 123.125.114.144
Address: 220.181.111.85
Address: 220.181.111.85
Address: 220.181.111.86
Address: 220.181.111.86
$ ./name_solver www.ustc.edu.cn
Canonical Name: ustc.edu.cn
Address: 202.38.64.246
Address: 202.38.64.246
-
转载请注明来自柳大的CSDN博客:Blog.CSDN.net/Poechant
-
分享到:
相关推荐
【C++ POCO库中文编程】 POCO库是一个强大的C++类库,其全称为“Portable Components”,致力于为开发互联网时代的网络应用程序提供高效、现代的解决方案。它使用标准的ANSI/ISO C++,并基于STL,具有高度的可移植...
在本文中,我们将深入探讨如何使用Poco库访问MySQL数据库,这是一个C++开发中的常见任务。Poco是一个轻量级、跨平台的开源C++库,提供了多种功能,包括网络、数据存取、XML解析、JSON处理等。在这个测试例子中,我们...
**Poco库与TCPServer框架** Poco库是一个开源的C++类库集合,它提供了许多用于构建网络、数据库、日志、XML处理、JSON解析等应用的基础组件。Poco库的设计目标是轻量级、高效且易于使用,使得开发者能够快速构建跨...
**POCO库详解** POCO库,全称为“Poor Man's Common C++ Object”,是一个开源的C++类库,旨在为开发跨平台的应用程序提供一套轻量级且强大的工具集。POCO库的设计理念是简单、高效且易于使用,它包含了许多现代...
在IT领域,Poco库是一个广泛使用的开源C++类库,它为开发跨平台的应用程序提供了许多基础组件。本文将详细探讨在ARM架构下使用Poco库,特别是针对Poco版本1.9.0,以及如何与MySQL、Redis和PostgreSQL数据库进行集成...
Poco库旨在简化和加速开发过程,尤其适用于网络编程、数据存取、XML处理、JSON操作、线程管理、日期和时间操作以及许多其他领域。它不仅包含了众多实用的类和函数,还提供了现代C++设计模式的实现,使得开发人员可以...
Poco库是一个功能丰富的C++库,用于构建跨平台的应用程序。它包含了网络、数据库、XML解析、JSON处理、加密、日志等多个模块。在邮件发送方面,Poco库提供了Net库中的MailMessage类和SMTPClientSession类,使得...
《轻量级C++网络库POCO..."poco-1.7.6-all-doc"这个压缩包中的文档详细阐述了POCO库的各个部分,是学习和使用POCO的重要参考资料。无论你是初次接触C++网络编程,还是寻求更高效的解决方案,POCO都是值得信赖的工具。
使用POCO库操作sqlite, vs2015工程, 包含编译好的POCO-1.94的库文件, 使用POCO库操作sqlite, vs2015工程, 包含编译好的POCO-1.94的库文件 使用POCO库操作sqlite, vs2015工程, 包含编译好的POCO-1.94的...
5. **安装指南**:对于不同操作系统(如Windows、Linux、Mac OS X)的安装和配置步骤,以及如何将Poco库集成到项目中。 6. **发行说明**:1.3.6版本的发行说明会列出此版本相对于先前版本的主要改进、新特性以及...
C++ POCO 库中文文档 C++ POCO 库是一个开源的 C++ 类库的集合,主要提供简单的、快速的网络和可移植应用程序的 C++ 开发。该库和 C++ 标准库可以很好的集成并填补 C++ 标准库的功能空缺。POCO 库的模块化、高效的...
Poco是著名的开源C++库,它为开发者提供了丰富的网络编程工具和类库,使得在C++中处理网络任务变得更加简单高效。Poco-1.3.5-all版本是一个全面的发布,包含了Poco库的多个组件,这些组件涵盖了广泛的编程需求,特别...
在Poco库中,网络编程是其核心功能之一。Poco库提供了Net库,包含了HTTP、HTTPS、FTP等协议的客户端和服务器实现,使得开发者可以轻松地进行网络通信。例如,你可以使用Poco::Net::HTTPClientSession来发起HTTP请求...
Poco库源码是C++开发者的一个重要资源,它是一个高度模块化、可移植的开源库,旨在简化和加速各种应用程序的开发,尤其在网络编程和跨平台应用中表现卓越。Poco库由多个组件组成,涵盖了网络、数据访问、XML处理、...
Poco动态库是一款广泛使用的开源C++库,它包含了丰富的网络、数据访问、日志、加密、XML解析、JSON处理、线程管理等模块,适用于开发跨平台的应用程序。在这个特定的案例中,我们讨论的是Poco库在Visual Studio 2013...
Poco库是一个开源的C++库,包含了众多用于构建网络、数据库、日志、XML解析、JSON处理、加密和时间管理等任务的组件。在Windows环境下编译Poco库,通常是为了满足特定项目的需求,例如需要针对x64架构进行优化或者与...
在Poco库中,通知和事件机制是实现组件间通信和异步编程的关键部分。 通知和事件在软件开发中扮演着重要角色,它们允许对象之间相互通信,而无需直接相互依赖。Poco库中的事件模型基于发布/订阅(publish/subscribe...
1. **网络编程**: Poco库中的Net组件提供了全面的TCP/IP网络编程接口,包括HTTP、HTTPS、FTP、SMTP等协议的支持。你可以使用这些接口轻松实现Web服务客户端和服务器,文件上传下载,邮件发送等功能。 2. **数据访问...
9. **加密和安全**:Poco库的Crypto模块提供了加密算法,如AES、RSA等,以及SSL/TLS支持,确保数据的安全传输。 10. **时间日期处理**:Poco库包含时间日期相关的类,便于进行日期计算、时间间隔处理以及时间格式...