文字列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.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/[email protected]> nntp://news.contoso.com
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 , "");
例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を出力します
または試す
Uri.GetLeftPart( UriPartial.Authority )