문자열 URL에서 호스트 도메인을 얻는 방법은 무엇입니까?
GetDomain에는 1 개의 입력 “URL”, 1 개의 출력 “Domain”이 있습니다.
예 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.GetLeftPart( UriPartial.Authority )
Uri.GetLeftPart 메서드에 대한 URI 부분을 정의합니다.
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 : //news.contoso.com
file : //server/filename.ext-> file : // 서버
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 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