У меня есть несколько имен хостов, которые мне нужно сравнить и сказать, представляют ли они один и тот же хост, например:
localhost
127.0.0.1
machineName
Какой самый надежный способ сделать это в C#? Пока я делаю это так:
private bool CompareHosts(string host1, string host2)
{
UriBuilder builder1 = new UriBuilder();
builder1.Host = Dns.GetHostAddresses(host1)[0].ToString();
var uri1 = builder1.Uri;
UriBuilder builder2 = new UriBuilder();
builder2.Host = Dns.GetHostAddresses(host2)[0].ToString();
var uri2 = builder2.Uri;
return Uri.Compare(uri1, uri2, UriComponents.Host,
UriFormat.Unescaped, StringComparison.OrdinalIgnoreCase) == 0;
}
Я не включил обработку ошибок для массива адресов хостов, но я не уверен, что делать, если он возвращает более одного адреса, значит ли это, что они представляют разные машины? Есть ли лучший способ сравнить их? Мне нужно проверить, что эти хосты относятся к одной и той же машине.