web-dev-qa-db-ja.com

URLからホストドメインを取得しますか?

文字列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
111
001

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"
225
Adil

このようにしてください。

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));

Demo

43
Soner Gönül

ri クラスを使用し、 Host プロパティを使用します

Uri url = new Uri(@"http://support.domain.com/default.aspx?id=12345");
Console.WriteLine(url.Host);
27
Habib

次の文を試してください

 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
11
SiwachGaurav

最良の方法、そしてそれを行う正しい方法は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

4

これを試して

Console.WriteLine(GetDomain.GetDomainFromUrl("http://support.domain.com/default.aspx?id=12345"));

Support.domain.comを出力します

または試す

Uri.GetLeftPart( UriPartial.Authority )
1
soniccool

文字列を URI objectとして構築し、 Authority プロパティが必要なものを返します。

0