Полагаю, вы говорите о получении верхнего уровня доменного имени из имени хоста? TLD - это только две последние разделенные точками части полного имени хоста, поэтому функция будет выглядеть следующим образом:
public static string GetTopLevelDomain(string hostName)
{
int lastDot = hostName.LastIndexOf('.');
if (lastDot < 0)
return hostName;
int previousDot = hostName.LastIndexOf('.', lastDot - 1);
return (previousDot >= 0) ? hostName.Substring(previousDot + 1) : hostName;
}
Если вы на самом деле пытаетесь выяснить, кому принадлежит домен, вам нужно воспользоваться поиском в whois. Вот пример whois в C # . Информация просто возвращается в виде простого текста; имейте в виду, что он не обязательно даже скажет вам реальное лицо или компанию, которой он принадлежит, иногда эта информация является частной, и все, что вы получите, - это регистратор (например, GoDaddy).
Кроме того, разные серверы Whois будут предоставлять разную информацию и разные области; например, вы можете получить информацию о домене в США с помощью ARIN, но для европейских доменов вместо этого вам нужно использовать RIPE. Честно говоря, я надеюсь, что это не то, что вы пытаетесь сделать, потому что вы обнаружите, что это довольно яма; нет простого способа надежно определить, что домен X принадлежит компания Y .