Как правильно сравнивать имена хостов

У меня есть несколько имен хостов, которые мне нужно сравнить и сказать, представляют ли они один и тот же хост, например:

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;
    }

Я не включил обработку ошибок для массива адресов хостов, но я не уверен, что делать, если он возвращает более одного адреса, значит ли это, что они представляют разные машины? Есть ли лучший способ сравнить их? Мне нужно проверить, что эти хосты относятся к одной и той же машине.

6
задан username 16 November 2011 в 12:30
поделиться