DomainName is a Ruby domain name parser based on the Public Suffix List available at publicsuffix.org/.
The Public Suffix List is a cross-vendor initiative to provide an accurate list of domain name suffixes.
The Public Suffix List is an initiative of the Mozilla Project, but is maintained as a community resource. It is available for use in any software, but was originally created to meet the needs of browser manufacturers.
A “public suffix” is one under which Internet users can directly register names. Some examples of public suffixes are “.com”, “.co.uk” and “pvt.k12.wy.us”. The Public Suffix List is a list of all known public suffixes.
Source publicsuffix.org/.
Since there was and remains 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. This is the aim of the Public Suffix List.
Not convinced yet? Check out a real world example: stackoverflow.com/questions/288810/get-the-subdomain-from-a-url
-
Ruby >= 1.8.6 (not tested with previous versions)
Successfully tested against
-
Ruby 1.8.6 / 1.8.7 / 1.9.1
-
MacRuby 0.4
-
Ruby Enterprise Edition
Via RubyGems/Gemcutter
$ gem install domain_name --source http://gemcutter.org
You might need administrator privileges on your system to install it.
Example domain without subdomains.
domain = DomainName.parse("google.com") domain.tld # => "com" domain.domain # => "google" domain.subdomain # => nil
Example domain with subdomains.
domain = DomainName.parse("www.google.com") domain.tld # => "com" domain.domain # => "google" domain.subdomain # => "www"
- Author
-
Simone Carletti <weppos@weppos.net>
See the CHANGELOG.rdoc file for details.
Copyright © 2009 Simone Carletti, DomainName is released under the MIT license.