Получить просто доменное имя от URL?

Я пытаюсь извлечь просто доменное имя из строки URL. У меня почти есть он... Я использую URI

У меня есть строка.. моя первая мысль состояла в том, чтобы использовать Regex, но затем я решил использовать класс URI

http://www.google.com/url?sa=t&source=web&ct=res&cd=1&ved=0CAgQFjAA&url=http://www.test.com/&rct=j&q=test&ei=G2phS-HdJJWTjAfckvHJDA&usg=AFQjCNFSEAztaqtkaIvEzxmRm2uOARn1kQ

Я должен преобразовать вышеупомянутое в google.com и Google без www

Я сделал следующее

Uri test = new Uri(referrer);
log.Info("Domain part : " + test.Host);

В основном это возвращает www.google.com.... я хотел бы попытаться возвратить 2 формы, если это возможно..., как упомянуто...

google.com и Google

Действительно ли это возможно с URI?

33
задан John Saunders 17 December 2013 в 07:45
поделиться

5 ответов

Да, можно использовать:

Uri.GetLeftPart( UriPartial.Authority )
28
ответ дан 27 November 2019 в 18:03
поделиться

Я думаю, что вы проявляете недоразумение того, что представляет собой «доменное имя» - нет такой вещи, как «чистое доменное имя» в общем использовании - это то, что вам нужно будет определить, если вы хотите последовательные результаты.
Вы просто хотите отложить часть «www»? А потом попросите другую версию, которая откладывается от домена верхнего уровня (например, откидывающаяся из деталей «.COM» или «.CO.COUK»?) Еще один ответ упоминает разделение («».) - Вам нужно будет использовать что-то подобное, если вы хотите исключить определенные части хоста имени вручную, в рамках .NET нет ничего, что именно нет необходимости - вам нужно будет реализовать эти Вещи сами.

3
ответ дан 27 November 2019 в 18:03
поделиться

Google.com не гарантированно совпадает с www.google.com (ну, для этого примера это технически, но может быть иначе).

Может быть, что вам нужно, на самом деле удалите домен «верхний уровень» и «WWW» Subodmain? Тогда просто разделение ('.') и возьмите часть до последней части!

6
ответ дан 27 November 2019 в 18:03
поделиться
[112465779-

Из-за многочисленных вариаций доменных имен и несуществования любого реального авторитетного списка того, что представляет собой «чистое доменное имя», как вы описываете, я просто прибегал к использованию URI. Хозяин в прошлом. Чтобы избежать случаев, когда www.google.com и Google.com отображаются в виде двух разных доменов, я часто прибегал к разделу WWW. От всех доменов, которые содержат его, так как он почти гарантирован (почти), чтобы указать на тот же сайт. Это действительно единственный простой способ сделать это, не рискуя потерять некоторые данные.

-1
ответ дан 27 November 2019 в 18:03
поделиться

См. Блог Рика Страля недавно как ссылка на некоторую C # и .NET Centric:

Создание чувства путей ASP.NET

3
ответ дан 27 November 2019 в 18:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: