您好 我有一个要求从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
正在抛出异常。
在这两种情况下,我应该使用哪种方法?
答案 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
。