Получить только доменное имя из URL? - PullRequest
33 голосов
/ 28 января 2010

Я пытаюсь извлечь только имя домена из строки 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?

Ответы [ 12 ]

0 голосов
/ 09 июня 2013
string domain = new Uri(HttpContext.Current.Request.Url.AbsoluteUri).GetLeftPart(UriPartial.Authority);
0 голосов
/ 28 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...