I want to be able to parse any URL with Ruby to get the main part of the domain without the www
(just the example.com
)
Splits a hostname into subdomains, domain and (effective) top-level domains. Since domain name registrars organize their namespaces in different ways, it's not straight-forward to split a hostname into subdomains, the domain and top-level domains.
Please note there is no algorithmic method of finding the highest level at which a domain may be registered for a particular top-level domain (the policies differ with each registry), the only method is to create a list of all top-level domains and the level at which domains can be registered.
This is the reason why the Public Suffix List exists.
I'm the author of PublicSuffix, a Ruby library that decomposes a domain into the different parts.
Here's an example
require 'uri/http' uri = URI.parse("http://toolbar.google.com") domain = PublicSuffix.parse(uri.host) # => "toolbar.google.com" domain.domain # => "google.com" uri = URI.parse("http://www.google.co.uk") domain = PublicSuffix.parse(uri.host) # => "www.google.co.uk" domain.domain # => "google.co.uk"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With