POCO庫中文編程參考指南(9)Poco::Net::DNS

來源:互聯網
上載者:User


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.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

-

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.