web-dev-qa-db-fra.com

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

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

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

Exemple 1

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
102
001

Vous pouvez utiliser les objets Request ou Uri pour obtenir l'hôte de l'URL.

Utiliser Request.Url

string Host = Request.Url.Host;

Utiliser Uri

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

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/[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

38
Soner Gönül

Utilisez Uri class et utilisez Host property

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

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

Exemple 1

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

La meilleure façon de procéder consiste à utiliser le champ Uri.Authority.

Chargez et utilisez Uri comme ceci: 

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 Url, utiliser un objet Uri est le bon moyen de le faire. https://msdn.Microsoft.com/en-us/library/system.uri(v=vs.110).aspx

4
Guillaume Beauvois

Essaye ça

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

Il va sortir support.domaine.com

Ou essayer 

Uri.GetLeftPart( UriPartial.Authority )
1
soniccool

Vous devez construire votre chaîne en tant que URI object et Authority property renvoie ce dont vous avez besoin. 

0