Если нет схемы (без двоеточия в строке), добавьте «http: //», чтобы сделать ее допустимым URL.
Проложить строку до Uri constructor.
Доступ к Uri's Host property.
Теперь у вас есть имя хоста. Что именно вы считаете «доменное имя» данного имени хоста спорный вопрос. Я предполагаю, что вы не просто означаете все после первой точки.
Невозможно отличить имена хостов, как «whatever.youdomain.com» от доменов в-SLD, таких как «warwick.ac.uk» только из строк. Действительно, есть даже немного серая область о том, что есть и не является публичным SLD, учитывая усилия некоторых регистраторов по выделению собственных ниш.
Общим подходом является поддержание большого списка SLD и других суффиксов, используемых неродственными объектами. Это то, что делают веб-браузеры, чтобы остановить нежелательное публичное совместное использование файлов cookie. После того, как вы нашли открытый суффикс, вы можете добавить один ближайший префикс в имени хоста, разбитого точками, чтобы получить объект самого высокого уровня, ответственный за данное имя хоста, если это то, что вы хотите. Списки суффикса - это ад для поддержки, но вы можете поиграть на someone else's efforts.
В качестве альтернативы, если ваше приложение имеет время и сетевое соединение, чтобы сделать это, оно может начать обнюхивать информацию о имени хоста. например. он может выполнить запрос whois для имени хоста и продолжать смотреть на каждого родителя, пока не получит результат, и это будет доменное имя субъекта самого низкого уровня, ответственного за данное имя хоста.
Или, если все это слишком много, вы можете попробовать просто отрубить любой ведущий «www.» Подарок!
+1 для использования существующих объектов –
Существует библиотека C# с открытым исходным кодом, которая использует publicsuffix.org для анализа доменов, здесь: http://code.google. ком/р/имя_домен-анализатор / –