net name mvc domain current asp c# string url httpwebrequest uri

c# - name - Obtener dominio de host desde la URL?



request absolute url c# (8)

Debe construir su cadena como objeto URI y la propiedad Authority devolverá lo que necesita.

cómo obtener el dominio de host de una cadena de URL?

GetDomain tiene 1 entrada "URL", 1 salida "Dominio"

Ejemplo 1

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

Ejemplo2

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

Ejemplo3

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


Intenta así;

Uri.GetLeftPart( UriPartial.Authority )

Define las partes de un URI para el método 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 -> archivo: // servidor

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


La mejor manera, y la forma correcta de hacerlo es usando el campo Uri.Authority

Carga y usa Uri como sigue:

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 desea manipular Url, usar el objeto Uri es la mejor manera de hacerlo. https://msdn.microsoft.com/en-us/library/system.uri(v=vs.110).aspx


Prueba esto

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

Saldrá de support.domain.com

O tratar

Uri.GetLeftPart( UriPartial.Authority )


Puede usar el objeto Request u objeto Uri para obtener el host de url.

Usando Request.Url

string host = Request.Url.Host;

Usando Uri

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


Use la clase Uri y use la propiedad Uri

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


WWW es un alias, por lo que no lo necesita si quiere un dominio. Aquí está mi pequeña función para obtener el dominio real de una cadena

private string GetDomain(string url) { string[] split = url.Split(''.''); if (split.Length > 2) return split[split.Length - 2] + "." + split[split.Length - 1]; else return url; }


prueba la siguiente declaración

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

Ejemplo 1

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

Ejemplo2

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