как получить домен хоста из строкового URL?
GetDomain имеет 1 входной «URL», 1 выходной «Домен»
Пример1
INPUT: http://support.domain.com/default.aspx?id=12345
OUTPUT: support.domain.com
Пример2
INPUT: http://www.domain.com/default.aspx?id=12345
OUTPUT: www.domain.com
Пример 3
INPUT: http://localhost/default.aspx?id=12345
OUTPUT: localhost
Ответы:
Вы можете использовать
Request
объект илиUri
объект для получения хоста URL.Использование Request.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 uriAddress = new Uri("http://www.contoso.com/index.htm#search"); Console.WriteLine("The path of this Uri is {0}", uriAddress.GetLeftPart(UriPartial.Authority));
Demo
источник
Используйте класс Uri и используйте свойство Host
Uri url = new Uri(@"http://support.domain.com/default.aspx?id=12345"); Console.WriteLine(url.Host);
источник
попробуйте следующее заявление
Uri myuri = new Uri(System.Web.HttpContext.Current.Request.Url.AbsoluteUri); string pathQuery = myuri.PathAndQuery; string hostName = myuri.ToString().Replace(pathQuery , "");
Пример1
Input : http://localhost:4366/Default.aspx?id=notlogin Ouput : http://localhost:4366
Пример2
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
Или попробуйте
источник
var url = Regex.Match(url, @"(http:|https:)\/\/(.*?)\/");
INPUT = "/programming/";
ВЫХОД = "https://stackoverflow.com/";
источник
Вы должны создать свою строку как объект URI, а свойство Authority возвращает то, что вам нужно.
источник
WWW - это псевдоним, поэтому он вам не нужен, если вам нужен домен. Вот моя маленькая функция для получения реального домена из строки
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; }
источник