GetHostByName错误,http链接获取IP地址

时间:2011-04-22 09:18:26

标签: c# .net

您好 我有一个要求从URL中提取IP。以下代码适用于一种情况:

string str2 = "www.google.com";
IPHostEntry ip = Dns.GetHostByName(str2);
IPAddress [] IpA = ip.AddressList;
for (int i = 0; i < IpA.Length; i++)
{
    Console.WriteLine ("IP Address {0}: {1} ", i, IpA[i].ToString ());
}

但是如果将URL更改为

string str2 = "http://google.com";

GetHostByName正在抛出异常。

在这两种情况下,我应该使用哪种方法?

1 个答案:

答案 0 :(得分:5)

您可以使用Uri.IsWellFormedUriString方法确定str2是否格式正确,然后仅获取主机:

string str2 = "http://www.google.com";
if (Uri.IsWellFormedUriString(str2, UriKind.Absolute))
{
    str2 = new Uri(str2).Host;
}
var host = Dns.GetHostEntry(str2);

MSDN也说Dns.GetHostByName已过时,您应该使用Dns.GetHostEntry