2014-10-18 2 views
3

Мне нужно получить точное доменное имя с любого URL-адреса.Получение доменного имени от URl

Например,

Это то, что я пытался до сих пор это не возвращает точные результаты я ожидаю может ли один помочь мне здесь

public static string GetDomainName(string domainURL) { 
      string domain = new Uri(domainURL).DnsSafeHost.ToLower(); 
      var tokens = domain.Split('.'); 
      if (tokens.Length > 2) 
      { 
       //Add only second level exceptions to the < 3 rule here 
       string[] exceptions = { "info", "firm", "name", "com", "biz", "gen", "ltd", "web", "net", "pro", "org" }; 
       var validTokens = 2 + ((tokens[tokens.Length - 2].Length < 3 || exceptions.Contains(tokens[tokens.Length - 2])) ? 1 : 0); 
       domain = string.Join(".", tokens, tokens.Length - validTokens, validTokens); 
      } 
      return domain; 
    } 

ответ

3

Используйте класс URI найден в системе имен

Uri myUri = new Uri("http://www.something.com/"); 

У него есть такие объекты, как хозяин, который должен вас устроить ...

0

Вот код для экстрактов t части, используя класс Uri, а затем поместите части, которые хотите вернуть вместе.

Тем не менее, казалось, что вы специально хотели снять кусок «www.», поэтому я набросил на него замену строки.

Uri MyUri = new Uri(domainURL); 

string Result = MyUri.GetLeftPart(UriPartial.Scheme); 

Result += MyUri.GetComponents(UriComponents.Host, UriFormat.SafeUnescaped).Replace("www.", string.Empty); 

return Result; 
1

Пожалуйста, попробуйте этот код:

public string GetDomainName(string domainURL) 
{ 
    string domain = new Uri(domainURL).DnsSafeHost.ToLower(); 
    domain = domainURL.Split(':')[0] + "://" + domain; 
    return domain; 
} 

Я думаю, вы должны разделить и получить протокол от начала строки и добавить его к домену. Если вы передадите любой URL без протокола, например http://, код new Uri() будет вызывать ошибку.

Итак, я думаю, что код domainURL.Split(':')[0] + "://" + domain; будет работать для вас.

Просьба проверить его с помощью предлагаемых вами входов.

0

попробовать это:

 Uri myUri = new Uri("http://www.something.subdomain.com"); 
     string host = myUri.Host; 

хост то, что вы ищете.

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