Получить домен хоста из URL?
как получить домен хоста из строки URL?
GetDomain имеет 1 входной "URL", 1 выходной "домен"
Example1
INPUT: http://support.domain.com/default.aspx?id=12345
OUTPUT: support.domain.com
Example2
INPUT: http://www.domain.com/default.aspx?id=12345
OUTPUT: www.domain.com
Example3
INPUT: http://localhost/default.aspx?id=12345
OUTPUT: localhost
8 ответов:
можно использовать
Request
объект илиUri
объект, чтобы получить хост url.используя запрос.URL-адрес
string host = Request.Url.Host;
используя Uri
Uri myUri = new Uri("http://www.contoso.com:8080/"); string host = myUri.Host; // host is "www.contoso.com"
попробуйте вот так;
Uri.GetLeftPart( UriPartial.Authority )
определяет части URI для Uri.Метод GetLeftPart.
http://www.contoso.com/index.htm?date=today --> http://www.contoso.com
http://www.contoso.com/index.htm#main --> http://www.contoso.com
nntp://news.contoso.com/123456@contoso.com --> протоколы NNTP://новости.в компании Contoso.ком
file:/ / server / filename.ext -- > file: / / server
Uri uriAddress = new Uri("http://www.contoso.com/index.htm#search"); Console.WriteLine("The path of this Uri is {0}", uriAddress.GetLeftPart(UriPartial.Authority));
попробуйте следующее заявление
Uri myuri = new Uri(System.Web.HttpContext.Current.Request.Url.AbsoluteUri); string pathQuery = myuri.PathAndQuery; string hostName = myuri.ToString().Replace(pathQuery , "");
Example1
Input : http://localhost:4366/Default.aspx?id=notlogin Ouput : http://localhost:4366
Example2
Input : http://support.domain.com/default.aspx?id=12345 Output: support.domain.com
самый лучший способ, и правильный способ сделать это с помощью
Uri.Authority
полеЗагрузите и используйте Uri следующим образом:
Uri NewUri; if (Uri.TryCreate([string with your Url], UriKind.Absolute, out NewUri)) { Console.Writeline(NewUri.Authority); } Input : http://support.domain.com/default.aspx?id=12345 Output : support.domain.com Input : http://www.domain.com/default.aspx?id=12345 output : www.domain.com Input : http://localhost/default.aspx?id=12345 Output : localhost
Если вы хотите манипулировать Url, использование объекта Uri-это хороший способ сделать это. https://msdn.microsoft.com/en-us/library/system.uri (v=vs. 110). aspx
попробуй такое
Console.WriteLine(GetDomain.GetDomainFromUrl("http://support.domain.com/default.aspx?id=12345"));
Он будет выводить support.domain.com
или попробовать
Uri.GetLeftPart( UriPartial.Authority )
WWW-это псевдоним, поэтому он вам не нужен, если вы хотите домен. Вот моя функция litllte, чтобы получить реальный домен из строки
private string GetDomain(string url) { string[] split = url.Split('.'); if (split.Length > 2) return split[split.Length - 2] + "." + split[split.Length - 1]; else return url; }