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 地址?的主要内容,如果未能解决你的问题,请参考以下文章