182 votes

Obtenir le domaine hôte à partir de l'URL ?

Comment obtenir le domaine hôte à partir d'une chaîne d'URL ?

GetDomain a 1 entrée "URL", 1 sortie "Domaine".

Exemple1

INPUT: http://support.domain.com/default.aspx?id=12345
OUTPUT: support.domain.com

Exemple2

INPUT: http://www.domain.com/default.aspx?id=12345
OUTPUT: www.domain.com

Exemple3

INPUT: http://localhost/default.aspx?id=12345
OUTPUT: localhost

320voto

Adil Points 80031

Vous pouvez utiliser Request ou Uri pour obtenir l'hôte de l'url.

Utilisation de Demande.Url

string host = Request.Url.Host;

Utilisation de Uri

Uri myUri = new Uri("http://www.contoso.com:8080/");   
string host = myUri.Host;  // host is "www.contoso.com"

83voto

Soner Gönül Points 35739

Essayez comme ça ;

Uri.GetLeftPart( UriPartial.Authority )

Définit les parties d'un URI pour la méthode 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://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

30voto

Habib Points 93087

Utilice Uri et utiliser Hôte propriété

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

21voto

SiwachGaurav Points 308

Essayez la déclaration suivante

 Uri myuri = new Uri(System.Web.HttpContext.Current.Request.Url.AbsoluteUri);
 string pathQuery = myuri.PathAndQuery;
 string hostName = myuri.ToString().Replace(pathQuery , "");

Exemple1

 Input : http://localhost:4366/Default.aspx?id=notlogin
 Ouput : http://localhost:4366

Exemple2

 Input : http://support.domain.com/default.aspx?id=12345
 Output: support.domain.com

12voto

Le meilleur moyen, et le bon moyen de le faire, est d'utiliser Uri.Authority champ

Chargez et utilisez Uri comme suit :

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

Si vous voulez manipuler des Url, l'utilisation de l'objet Uri est le bon moyen de le faire. https://msdn.microsoft.com/en-us/library/system.uri(v=vs.110).aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X