首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ADDRINFOW结构中,AI_FQDN和AI_CANONNAME结果有什么不同?

在ADDRINFOW结构中,AI_FQDN和AI_CANONNAME结果有什么不同?
EN

Stack Overflow用户
提问于 2019-02-15 23:38:17
回答 2查看 195关注 0票数 2

关于使用GetAddrInfoW (我来自C#使用背景)。

ADDRINFOW structure可以将ai_flags设置为AI_FQDN或AI_CANONNAME,以便PWSTR ai_canonname将包含以下任一项:

在DNS中注册的规范名称或平面名称解析到的完全限定的域名

Windows文档:“在DNS中注册的规范名称可能与平面名称解析到的完全限定的域名不同。”

这两者之间的区别是什么?

EN

回答 2

Stack Overflow用户

发布于 2019-02-16 02:49:16

ai_canonname是out (in c#)参数类型。

但它可以包含基于标志集(AI_FQDN/AI_CANONNAME)的完全限定名称规范名称

完全限定名称:从根级别获取完整路径(例如:ru.wikipedia.org。)

https://en.wikipedia.org/wiki/Fully_qualified_domain_name#/media/File:DNS-names-ru.svg

规范名称:如果映射了域名,则为规范名称。假设有一个实际域名为test.com的IP地址。但是为了确保"www.test.com“能够正常工作,我们创建了一个规范的名称记录,以便"www.test.com”指向"test.com“。

票数 0
EN

Stack Overflow用户

发布于 2019-02-16 04:41:02

我相信(但没有检查过这一点),在AI_FQDN中,ai_canonname是在搜索路径处理后用于DNS查找的名称。因此,如果您查找www,并且您的搜索路径包含example.com,那么您将获得在ai_canonname中成功查找的www.example.com,而独立于DNS对www.example.com的说明。

使用较旧的AI_CANONNAME选项,解析器执行搜索路径处理和传统的基于CNAME的规范化。因此,继续第一个示例,如果www.example.com的DNS条目如下:

代码语言:javascript
复制
www.example.com. IN A 192.0.2.1

您将再次在ai_canonname中获得www.example.com。但如果DNS包含以下内容:

代码语言:javascript
复制
www.example.com. CNAME www1.example.net.

和:

代码语言:javascript
复制
www.example1.net. IN A 192.0.2.1

您将获得www1.example.net,因为在本例中,这是CNAME更改末尾的规范名称。

区别是有意义的,因为CDN托管的东西的规范名称通常是完全没有意义的(比如e8178.e6.cdn-provider.example),而仅仅应用搜索路径就会给出一些实际上有意义的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54712570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档