Si può fare questo per ottenere solo gli ultimi due segmenti del nome host:
string[] hostParts = new System.Uri(sURL).Host.Split('.');
string domain = String.Join(".", hostParts.Skip(Math.Max(0, hostParts.Length - 2)).Take(2));
O questo:
var host = new System.Uri(sURL).Host;
var domain = host.Substring(host.LastIndexOf('.', host.LastIndexOf('.') - 1) + 1);
Questo metodo troverà includere almeno due nome di dominio parti, ma includerà anche parti intermedie di due caratteri o meno:
var host = new System.Uri(sURL).Host;
int index = host.LastIndexOf('.'), last = 3;
while (index > 0 && index >= last - 3)
{
last = index;
index = host.LastIndexOf('.', last - 1);
}
var domain = host.Substring(index + 1);
Questo gestirà domini come localhost
, example.com
e example.co.uk
. Non è il metodo migliore, ma almeno ti salva dalla costruzione di una lista gigantesca di domini di primo livello.
fonte
2013-05-10 01:59:59
Simile a http://stackoverflow.com/questions/4643227/top-level-domain-from-url-in-c-sharp – ysrb
In realtà si vuole dominio di primo livello. subdomain.website.com è il dominio e website.com è il dominio di primo livello. – ysrb
Questa stringa non è molto difficile da analizzare. Hai provato qualche semplice combinazione di '.Split' e' string.Join'? –