C#:从域名获取 IP 地址?

Posted

技术标签:

【中文标题】C#:从域名获取 IP 地址?【英文标题】:C#: Get IP Address from Domain Name? 【发布时间】:2011-01-28 13:31:15 【问题描述】:

如果给定域名,我如何获取 IP 地址? 例如:www.test.com

【问题讨论】:

从IP获取域名怎么样? @Moshe: ***.com/questions/716748/c-reverse-ip-domain-check 【参考方案1】:

您可以使用System.Net.Dns 类:

Dns.GetHostAddresses("www.test.com");

【讨论】:

另请注意,它是复数 - 并非所有这些都可以在给定时间工作。 是的,但我认为这种方法返回多个地址的情况很少见,尤其是在互联网域的情况下。 @Brian - 六个 IP!哇!因此,您需要将它们全部存储起来,如果其中一个不起作用,请选择下一个。 @RollRoll 因为并非所有地址都可以正常工作,这是多个 A 记录的要点。【参考方案2】:

您可以使用GetHostAddresses 方法:

var address = Dns.GetHostAddresses("www.test.com")[0];

【讨论】:

不好。如果结果集为 0 怎么办?或者更可能超过 1 个? @Moshe:如果您有权访问 System.Net.Dns 类,则应该这样做。 @Andrey:如果不止一个,它会忽略其余的。如果为 0,我想它会崩溃:p @Moshe,在 VB.NET 中:Dim address = Dns.GetHostAddresses("www.test.com")(0) @Andrey, @Svish - 傻我,但当然。 @Darin Dimitrov - 谢谢。【参考方案3】:

您可以使用以下方法获得相同的结果:

Dns.GetHostAddresses("yahoo.com");

await Dns.GetHostAddressesAsync("yahoo.com");

【讨论】:

【参考方案4】:

我的答案可能与上述答案更相同,但在这里我使用代码获取当前 Web 应用托管的 URL/域名,并从中获取 IP 地址。我在我的 C# MVC Web 应用程序 中使用了该代码,并且运行良好。

Uri myUri = new Uri(((System.Web.HttpContextWrapper)HttpContext).Request.Url.ToString());
var ipAddress = Dns.GetHostAddresses(myUri.Host).FirstOrDefault().ToString();

【讨论】:

以上是关于C#:从域名获取 IP 地址?的主要内容,如果未能解决你的问题,请参考以下文章

Python获取url中域名及从域名中提取ip的方法

如何从 C# Windows 应用程序获取互联网 IP 地址 [重复]

php怎样通过IP获取应对的域名?

从 C# 中的 IP 获取本地网络上的机器 MAC 地址

如何绕过用CDN的域名 获取真实IP地址

编程黑科技gethostbyname()函数:通过域名获取IP地址!