2009-08-13 2 views
1

Как извлечь имя веб-сайта из URL-адреса или ссылки. Я нашел примеры для других языков, но не C#. Также URL/ссылка не будет текущей страницей, на которой я включен.Извлечь имя веб-сайта из URL-адреса

например. http://www.test.com/SomeOther/Test/Test.php?args=1

Из того, что мне нужно, чтобы извлечь только www.test.com, имейте в виду, что оно не всегда может быть .com и это может быть любой домен

ответ

9

Как насчет:

new Uri(url).Host 

Например:

using System; 

class Test 
{ 
    static void Main() 
    { 
     Uri uri = new Uri("http://www.test.com/SomeOther/Test/Test.php?args=1"); 
     Console.WriteLine(uri.Host); // Prints www.test.com 
    } 
} 

Заканчивать Документов для constructor taking a string и the Host property.

Обратите внимание, что, если это не «доверенный» источник данных (т.е. это может быть недействительным), вы можете использовать Uri.TryCreate:

using System; 

class Test 
{ 
    static void Main(string[] args) 
    { 
     Uri uri; 
     if (Uri.TryCreate(args[0], UriKind.Absolute, out uri)) 
     { 
      Console.WriteLine("Host: {0}", uri.Host); 
     } 
     else 
     { 
      Console.WriteLine("Bad URI!"); 
     } 
    } 
} 
+0

Блестящий именно то, что мне нужно, не верю, что я пропустил это. – RC1140

0
this.Request.Url.Host 

Другие свойства в этом классе будет иметь интерес.

+0

«Также URL/ссылка не будет текущей страницей, на которой я включен». – MPritchard

0

Использование регулярных выражений получить содержимое между HTTP: // и первый/после что.

+0

Также, если вы перейдете по пути Regex, обязательно исключите поддомены, если хотите :) – akif

+0

Я думаю, он хочет субдомен, на самом деле даже www является субдоменом test.com –

Смежные вопросы