分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

POCO库中文编程参考指南(9)Poco::Net::DNS

发布时间:2023-09-06 01:14责任编辑:熊小新关键词:暂无标签

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.comCanonical Name: baidu.comAddress: 123.125.114.144Address: 123.125.114.144Address: 220.181.111.85Address: 220.181.111.85Address: 220.181.111.86Address: 220.181.111.86$ ./name_solver www.ustc.edu.cnCanonical Name: ustc.edu.cnAddress: 202.38.64.246Address: 202.38.64.246

-

转载请注明来自柳大的CSDN博客:Blog.CSDN.net/Poechant

POCO库中文编程参考指南(9)Poco::Net::DNS

原文地址:http://www.cnblogs.com/lidabo/p/7612083.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved