NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
dns_client类 参考

DNS客户端类 更多...

#include <dns_client.hpp>

struct  config
 DNS客户端配置 更多...

Public 成员函数

 dns_client ()
 默认构造函数
 dns_client (config cfg, bool use_tcp=false)
 构造函数
void set_config (config cfg)
 设置客户端配置
void set_timeout (const milliseconds timeout)
 设置超时时间
void set_use_tcp (const bool use_tcp)
 设置是否使用TCP
void set_cache_ttl (const seconds ttl)
 设置缓存TTL
void clear_cache ()
 清空缓存
dns_query_result query (string_view domain, dns_record::raw type=dns_record::A, dns_query qclass=dns_query::INTERNET)
 执行DNS查询
future< dns_query_resultquery_async (const string &domain, dns_record::raw type=dns_record::A, dns_query qclass=dns_query::INTERNET)
 异步DNS查询
vector< stringresolve_a (string_view domain)
 解析A记录(IPv4地址)
vector< stringresolve_aaaa (string_view domain)
 解析AAAA记录(IPv6地址)
vector< stringresolve_cname (string_view domain)
 解析CNAME记录(别名)
vector< stringresolve_mx (string_view domain)
 解析MX记录(邮件交换器)
vector< stringresolve_txt (string_view domain)
 解析TXT记录(文本记录)
string reverse_query (string_view ip)
 反向查询(从IP获取域名)
vector< dns_query_resultbatch_query (const vector< string > &domains, dns_record::raw type=dns_record::A)
 批量查询

详细描述

DNS客户端类

提供DNS查询服务的完整实现,支持缓存、超时控制和多种查询类型。

主要功能:

  • DNS查询(支持A、AAAA、CNAME、MX、TXT等记录类型)
  • DNS缓存(减少重复查询)
  • 同步/异步查询
  • 批量查询
  • 反向查询(PTR记录)
  • TCP/UDP协议自动切换(响应截断时自动切换TCP)

在文件 dns_client.hpp45 行定义.

构造及析构函数说明

◆ dns_client() [1/2]

dns_client::dns_client ( )
inline

默认构造函数

使用默认配置创建DNS客户端。

在文件 dns_client.hpp77 行定义.

引用了 dns_client().

被这些函数引用 dns_client().

◆ dns_client() [2/2]

dns_client::dns_client ( config cfg,
bool use_tcp = false )
explicit

构造函数

参数
cfg客户端配置
use_tcp是否强制使用TCP
异常
dns_exception配置无效时抛出

成员函数说明

◆ batch_query()

vector< dns_query_result > dns_client::batch_query ( const vector< string > & domains,
dns_record::raw type = dns_record::A )

批量查询

参数
domains域名列表
type记录类型(默认A记录)
返回
查询结果列表

并发执行多个DNS查询,提高批量查询效率。

引用了 dns_record::A.

◆ query()

执行DNS查询

参数
domain域名
type记录类型(默认A记录)
qclass查询类(默认INTERNET)
返回
查询结果
异常
dns_exception查询失败时抛出

引用了 dns_record::A , 以及 INTERNET.

◆ query_async()

future< dns_query_result > dns_client::query_async ( const string & domain,
dns_record::raw type = dns_record::A,
dns_query qclass = dns_query::INTERNET )

异步DNS查询

参数
domain域名
type记录类型
qclass查询类
返回
future对象,可等待查询结果

引用了 dns_record::A , 以及 INTERNET.

◆ resolve_a()

vector< string > dns_client::resolve_a ( string_view domain)

解析A记录(IPv4地址)

参数
domain域名
返回
IPv4地址列表

◆ resolve_aaaa()

vector< string > dns_client::resolve_aaaa ( string_view domain)

解析AAAA记录(IPv6地址)

参数
domain域名
返回
IPv6地址列表

◆ resolve_cname()

vector< string > dns_client::resolve_cname ( string_view domain)

解析CNAME记录(别名)

参数
domain域名
返回
别名列表

◆ resolve_mx()

vector< string > dns_client::resolve_mx ( string_view domain)

解析MX记录(邮件交换器)

参数
domain域名
返回
MX记录列表(格式:"优先级 域名")

◆ resolve_txt()

vector< string > dns_client::resolve_txt ( string_view domain)

解析TXT记录(文本记录)

参数
domain域名
返回
文本记录列表

◆ reverse_query()

string dns_client::reverse_query ( string_view ip)

反向查询(从IP获取域名)

参数
ipIPv4地址
返回
域名,失败返回空字符串
异常
dns_exceptionIP地址无效时抛出

执行PTR记录查询,将IP地址转换为域名。 支持IPv4地址,IPv6支持有限。

◆ set_cache_ttl()

void dns_client::set_cache_ttl ( const seconds ttl)
inline

设置缓存TTL

参数
ttl缓存生存时间

在文件 dns_client.hpp110 行定义.

◆ set_config()

void dns_client::set_config ( config cfg)
inline

设置客户端配置

参数
cfg新配置

在文件 dns_client.hpp92 行定义.

引用了 move().

◆ set_timeout()

void dns_client::set_timeout ( const milliseconds timeout)
inline

设置超时时间

参数
timeout超时时间

在文件 dns_client.hpp98 行定义.

引用了 timeout.

◆ set_use_tcp()

void dns_client::set_use_tcp ( const bool use_tcp)
inline

设置是否使用TCP

参数
use_tcp是否使用TCP

在文件 dns_client.hpp104 行定义.


该类的文档由以下文件生成: