1

我提供了一个 IP 地址:64.78.58.91,我想使用 GetHostByAddr() win32 API 检索主机名。

而不是返回 www.ripcode.com 它返回 intermedia.net

我希望得到 www.ripcode.com 你能建议一个不同的 API 来解决这个问题吗?

提前致谢

最好的问候, 苏伦

4

3 回答 3

4

您可能会出现此行为的几个原因:

  1. 从未为 www.ripcode.com 设置 PTR 记录,因此该地址似乎仍属于 intermedia.net(可能是 www.ripcode.com 的托管服务提供商)。

  2. 多个域托管在同一个 IP 地址上,但只有一个(intermedia.net)实际上有 PTR 记录。

  3. 设置了多个 PTR 记录,但 GetHostByAddr() 只为您提供其中一个。

假设您拥有 www.ripcode.com,并且您拥有该 IP 地址的独占使用权(它不是共享托管设置),您需要联系您的托管服务提供商并让他们更改 PTR 记录以引用您的域,以便反向 dns 查找将正常工作。

这对于发送电子邮件尤其重要。许多电子邮件服务器会对发送服务器的 IP 进行反向查找,并根据发送邮件的域检查域。如果它们不匹配,则消息通常会被拒绝。

于 2009-08-14T16:23:42.160 回答
1

如果 IP 地址属于共享主机,它将服务于许多不同的网站。这可能是你能做的最好的。

该过程称为反向 DNS

于 2009-08-14T16:26:25.853 回答
0

你可以直接使用dns api。有一个函数 dnsQuery。请参阅以下链接:

https://support.microsoft.com/en-in/kb/831226 https://msdn.microsoft.com/en-us/library/windows/desktop/ms682016%28v=vs.85%29.aspx

于 2016-04-19T06:11:16.717 回答