POCO庫中文程式設計參考指南(9)Poco::Net::DNS
POCO庫中文程式設計參考指南(9)Poco::Net::DNS
- Author: 柳大·Poechant(鍾超)
- Email: zhongchao.ustc@gmail.com
- Blog:Blog.CSDN.net/Poechant
- Date: April 20th, 2012
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
-
相關文章
- POCO庫中文程式設計參考指南(7)Poco::Net::DatagramSocket程式設計
- POCO庫中文程式設計參考指南(3)Poco::Net::Socket程式設計
- POCO庫中文程式設計參考指南(5)Poco::Net::SocketAddress程式設計
- POCO庫中文程式設計參考指南(6)Poco::Timestamp程式設計
- POCO庫中文程式設計參考指南(4)Poco::Net::IPAddress程式設計iPad
- POCO庫中文程式設計參考指南(1)總覽程式設計
- POCO庫中文程式設計參考指南(2)基本資料型別(Poco/Types.h)程式設計資料型別
- POCO庫中文程式設計參考指南(11)如何使用Reactor框架?程式設計React框架
- POCO庫中文程式設計參考指南(8)豐富的Socket程式設計程式設計
- POCO庫中文程式設計參考指南(10)如何使用TCPServer框架?程式設計TCPServer框架
- 使用PETAPOCO連線MYSQL資料庫MySql資料庫
- ASP.NET中Cookie程式設計簡明參考ASP.NETCookie程式設計
- PetaPoco .net 輕量級orm簡單實用教程ORM
- Airtest (poco 框架) 元素定位實戰AI框架
- poco節點關係大公開!
- C++跨平臺庫boost和Poco的編譯C++編譯
- C標準庫參考指南系列譯文(9)signal.h
- C# 9 record 並非簡單屬性 POCO 的語法糖C#
- Flask開發團隊Pocoo的內部編碼風格指南Flask
- 前端參考指南前端
- [參考]如何用dnsmasq配置DNS?DNS
- Hbase 中文參考指南 3.0 校對活動發車了~
- Android程式碼規範參考指南Android
- BOOST庫 學習參考完全開發指南
- C標準庫參考指南系列譯文
- PetaPoco在.net專案中的簡單使用(儲存過程篇)儲存過程
- WCF:傳輸EntityFramework 實體類的POCO 代理Framework
- Petapoco、Dapper和EF Core的異同APP
- Spring Boot 2.0.2 參考指南(通用的應用程式屬性 ②)中文文件Spring Boot
- Global.asa程式設計完全參考手冊程式設計
- VB.Net中文教程(7) Me參考值 (轉)
- Elasticsearch 參考指南(介紹)Elasticsearch
- POCO 1.6.0 釋出,C++ 網路工具包C++
- 9i Dataguard (Standby) 引數設定參考
- DOJO API 中文參考手冊API
- MySQL8-中文參考-三-MySql
- 國外APP介面設計參考APP
- Poco框架實操:對節點可實施的操作框架