Ho un paio di nomi di host che ho bisogno di confrontare e dire se rappresentano lo stesso host, ad esempio:Come confrontare correttamente i nomi host
localhost
127.0.0.1
machineName
Qual è il modo più affidabile per farlo in C# ? Per ora sto facendo che, come:
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;
}
io non ho incluso la gestione di indirizzi host gamma errore, ma non sono sicuro di cosa fare se si tornerà più di un indirizzo, significa che rappresenteranno diverse macchine? C'è un modo migliore per confrontarli? Devo controllare che quegli host si riferiscano alla stessa macchina.
Non dimenticare ':: 1' e' 0: 0: 0: 0: 0: 0: 0: 1' anche; p –
È corretto che un singolo nome host possa avere più indirizzi IP - considera il caso di un PC con 5 schede di rete ... Vedere http://support.microsoft.com/kb/110703 per la conferma. –
@RB - Meno raro che 5 schede di rete sarebbero solo che più indirizzi IP sono stati assegnati a una singola connessione. –