Tengo un par de nombres de host que necesito para comparar y saber si ellos representan el mismo host, por ejemplo:¿Cómo comparar correctamente los nombres de host
localhost
127.0.0.1
machineName
¿Cuál es la manera más confiable de hacerlo en C# ? Por ahora lo estoy haciendo como: manejo de direcciones de host formación de error
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;
}
yo no he incluido, pero no estoy seguro de qué hacer si se va a volver más de una dirección, significa que ellos representarán diferentes máquinas? ¿Hay alguna forma mejor de compararlos? Necesito comprobar que esos hosts se refieren a la misma máquina.
No se olvide de ':: 1' y' 0: 0: 0: 0: 0: 0: 0: 1' también; p –
Es correcto que un solo nombre de host puede tener múltiples direcciones IP; considere el caso de una PC con 5 tarjetas de red ... Consulte http://support.microsoft.com/kb/110703 para obtener una confirmación. –
@RB - Menos raro que 5 tarjetas de red sean simplemente que se hayan asignado múltiples direcciones IP a una sola conexión. –