Я пытаюсь извлечь просто доменное имя из строки URL. У меня почти есть он... Я использую URI
У меня есть строка.. моя первая мысль состояла в том, чтобы использовать Regex, но затем я решил использовать класс URI
Я должен преобразовать вышеупомянутое в google.com и Google без www
Я сделал следующее
Uri test = new Uri(referrer);
log.Info("Domain part : " + test.Host);
В основном это возвращает www.google.com.... я хотел бы попытаться возвратить 2 формы, если это возможно..., как упомянуто...
google.com и Google
Действительно ли это возможно с URI?
Да, можно использовать:
Uri.GetLeftPart( UriPartial.Authority )
Я думаю, что вы проявляете недоразумение того, что представляет собой «доменное имя» - нет такой вещи, как «чистое доменное имя» в общем использовании - это то, что вам нужно будет определить, если вы хотите последовательные результаты.
Вы просто хотите отложить часть «www»?
А потом попросите другую версию, которая откладывается от домена верхнего уровня (например, откидывающаяся из деталей «.COM» или «.CO.COUK»?)
Еще один ответ упоминает разделение («».) - Вам нужно будет использовать что-то подобное, если вы хотите исключить определенные части хоста имени вручную, в рамках .NET нет ничего, что именно нет необходимости - вам нужно будет реализовать эти Вещи сами.
Google.com не гарантированно совпадает с www.google.com (ну, для этого примера это технически, но может быть иначе).
Может быть, что вам нужно, на самом деле удалите домен «верхний уровень» и «WWW» Subodmain? Тогда просто разделение ('.')
и возьмите часть до последней части!
Из-за многочисленных вариаций доменных имен и несуществования любого реального авторитетного списка того, что представляет собой «чистое доменное имя», как вы описываете, я просто прибегал к использованию URI. Хозяин в прошлом. Чтобы избежать случаев, когда www.google.com и Google.com отображаются в виде двух разных доменов, я часто прибегал к разделу WWW. От всех доменов, которые содержат его, так как он почти гарантирован (почти), чтобы указать на тот же сайт. Это действительно единственный простой способ сделать это, не рискуя потерять некоторые данные.
См. Блог Рика Страля недавно как ссылка на некоторую C # и .NET Centric: