Извлечение зарегистрированного домена из URL на основе списка публичных суффиксов

Учитывая URL, как извлечь зарегистрированный домен, используя Public Suffix List (список действующих ДВУ, например this list)?

Например, если учесть, что a.bg является допустимым публичным суффиксом:

http://www.test.start.a.bg/hello.html -> start.a.bg 
http://test.start.a.bg/               -> start.a.bg
http://test.start.abc.bg/             -> abc.bg (.bg is the public suffix)

Это невозможно сделать с помощью простой манипуляции строками, поскольку публичный суффикс может состоять из нескольких уровней в зависимости от TLD.

P.S. Неважно, как я буду читать список (база данных или плоский файл), но список должен быть доступен локально, чтобы я не зависел от внешних сервисов.

9
задан Charles 28 November 2011 в 17:20
поделиться