5

我一直在尝试找到使用 GetHostAddresses 或 GetHostEntry 的正确情况。我通过阅读这篇文章 ( http://msdn.microsoft.com/en-us/library/ms143998(v=vs.110).aspx ) 了解到 GetHostEntry 将执行反向 dns 查找,而 GetHostAddresses 不会..

但是,在什么情况下您需要使用 GetHostEntry 而不是 GetHostAddresses?另外,GetHostEntry 方法执行反向 DNS 查找的主要原因是什么?

4

2 回答 2

3
  • GetHostEntry(主机名或地址)

GetHostEntry 方法向 DNS 服务器查询与主机名或 IP 地址相关联的 IP 地址。该方法假定如果在 hostNameOrAddress 参数中传递 IP 文字字符串,则应用程序希望返回带有所有属性的 IPHostEntry 实例放。这些属性包括地址列表、别名和主机名。如果要查找与 IP 地址关联的主机名,可以使用此方法。

反向 DNS 主要用于跟踪网站访问者的来源或电子邮件消息的来源等。它通常不像正向 DNS 那样重要 - 访问者仍然可以正常访问您的网站您的网络服务器 IP 或访问者 IP 的任何反向 DNS。反向 DNS 对于特定应用程序很重要。Internet 上的许多电子邮件服务器都配置为拒绝来自任何没有反向 DNS 的 IP 地址的传入电子邮件。

  • 获取主机地址(主机名或地址)

但是 GetHostAddresses 方法会向 DNS 服务器查询与主机名关联的 IP 地址。如果 hostNameOrAddress 是 IP 地址,则返回此地址而不查询 DNS 服务器。此查询将返回与您提供的主机名相关的所有 IP 地址。

GetHostEntry 和 GetHostAddresses 之间的区别在于,每当您向 GetHostEntry 提供 IP 地址时,它都会查询 DNS 服务器并尝试获取该 IP 地址的主机名,然后获取与其关联的所有地址。如果数据成功反向解析不在您的 DNS 服务器中,这将失败。

于 2014-04-21T04:32:25.480 回答
3

我认为它比 GetHostAddresses 有用的一种情况是,如果您已经知道主机的一个 IP 地址并希望找到其他 IP 地址。如果一个 IP 被指定为参数,GetHostEntry 将返回所有地址,而 GetHostAddresses 将只返回一个(当 IP 被指定为参数时)。

于 2015-09-30T09:21:29.267 回答