为什么getaddrinfo的行为有时与" example.com"和" www.example.com"?

时间:2016-01-08 13:56:03

标签: dns getaddrinfo

这是MSDN的代码示例:getaddrinfo

您可以使用" baidu.com"和" www.baidu.com"测试。

1 个答案:

答案 0 :(得分:0)

因为baidu.com和www.baidu.com是不同的地址!

www.example.com在DNS中注册了A类型记录(或CNAME,指向A记录 - 这稍微简化了)A记录是一个名称,在本例中为www指向IP地址12.34.56.78。 (因为我确定你已经知道了!)

example.com也可以注册A记录(虽然不是CNAME),这称为Apex(或裸体!)域。 example.com' s记录很可能指向123.45.67.89

一点历史

出现这种情况的部分原因是,在互联网发展的早期,服务器将拥有类似LOCUS.UC.EDU的主机名,因为很难知道LOCUS可能提供哪些服务。您可以附加CNAME FTP.UC.EDU以指向该计算机。这样人们就知道它提供了哪些服务。在那时,www只是另一种服务,它在集体意识中没有特殊的地位。 (所有这一切都发生在互联网正在发展的十年或二十年!)但你也可能想要bob@UC.EDU工作。所以UC.EDU也需要成为主机名

实际上它只是以主机名(以及获得telexed的主机记录)开头 - 我确实喜欢这个事实) - 但我们会忽略这种情况。

回到事实

通常 - 应该 - 发生的事情是在Apex上注册的A记录和在www注册的CNAME但是肯定没有要求,你可以拥有任何东西您希望在您的域中记录的记录。