sitio que nombre internet entre ejemplos dominios dominio direccion diferencia cuál cual c# dns uri tld

c# - que - Obtención del nombre de dominio exacto de cualquier URL



que es un sitio web (5)

Otra variante, sin dependencias:

string GetDomainPart(string url) { var doubleSlashesIndex = url.IndexOf("://"); var start = doubleSlashesIndex != -1 ? doubleSlashesIndex + "://".Length : 0; var end = url.IndexOf("/", start); if (end == -1) end = url.Length; string trimmed = url.Substring(start, end - start); if (trimmed.StartsWith("www.")) trimmed = trimmed.Substring("www.".Length ); return trimmed; }

Ejemplos:

http://www.google.com → google.com

http://www.google.co.uk/path1/path2 → google.co.uk

http://localhost.intranet:88/path1/path2 → localhost.intranet:88

http://www2.google.com → www2.google.com

Esta pregunta ya tiene una respuesta aquí:

Necesito extraer el nombre de dominio exacto de cualquier URL.

Por ejemplo,

Url: http://www.google.com -> Dominio: google.com

Url: http://www.google.co.uk/path1/path2 -> Dominio: google.co.uk

¿Cómo puede esto ser posible en c #? ¿Hay una lista completa de TLD o un analizador para esa tarea?



Puede usar la Clase Uri para acceder a todos los componentes de un URI:

var uri = new Uri("http://www.google.co.uk/path1/path2"); var host = uri.Host; // host == "www.google.co.uk"

Sin embargo, no hay una forma integrada de eliminar el subdominio "www" de "www.google.co.uk". Necesitas implementar tu propia lógica, por ejemplo

var parts = host.ToLowerInvariant().Split(''.''); if (parts.Length >= 3 && parts[parts.Length - 1] == "uk" && parts[parts.Length - 2] == "co") { var result = parts[parts.Length - 3] + ".co.uk"; // result == "google.co.uk" }


Utilizar:

new Uri("http://www..com/questions/5984361/c-sharp-getting-exact-domain-name-from-any-url?s=45faab89-43eb-41dc-aa5b-8a93f2eaeb74#new-answer").GetLeftPart(UriPartial.Authority).Replace("/www.", "/").Replace("http://", ""));

Entrada:

http://www..com/questions/5984361/c-sharp-getting-exact-domain-name-from-any-url?s=45faab89-43eb-41dc-aa5b-8a93f2eaeb74#new-answer

Salida:

.com

También funciona para lo siguiente.

http://www.google.com → google.com

http://www.google.co.uk/path1/path2 → google.co.uk

http://localhost.intranet:88/path1/path2 → localhost.intranet: 88

http://www2.google.com → www2.google.com


utilizar:

var uri =new Uri(Request.RawUrl); // to get the url from request or replace by your own var domain = uri.GetLeftPart( UriPartial.Authority );

Entrada:

Url = http://google.com/?search=true&q=how+to+use+google

Resultado:

domain = google.com