-3

I fetch the domain from the URL as follows:

var uri = new Uri("Http://www.google.com");
var host = uri.Host;
//host ="www.google.com"

But I want only google.com in Host,

host = "google.com"
Soner Gönül
  • 97,193
  • 102
  • 206
  • 364
Brijesh
  • 352
  • 5
  • 17

2 Answers2

3

Given the accepted answer I guess the issue was not knowing how to manipulate strings rather than how to deal with uris... but for anyone else who ends up here:

The Uri class does not have this property so you will have to parse it yourself.

Presumably you do not know what the subdomain is before time so a simple replace may not be possible.

This is not trivial since the TLDs are so varied (http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains), and there maybe be multiple parts to the url (eg http://pre.subdomain.domain.co.uk).

You will have to decide exactly what you want to get and how complex you want the solution to be.

simple - do a string replace, see ekad's answer

medium - regex that works most of the time, see Strip protocol and subdomain from a URL

or complex - refer to a list of suffixes in order to figure out what is subdomain and what is domain eg Get the subdomain from a URL

Community
  • 1
  • 1
Tom Elmore
  • 1,980
  • 15
  • 20
2

If host begins with "www.", you can replace "www." with an empty string using String.Replace Method like this:

var uri = new Uri("Http://www.google.com");
var host = uri.Host.ToLower();
if (host.StartsWith("www."))
{
    host = host.Replace("www.", "");
}
ekad
  • 14,436
  • 26
  • 44
  • 46