У кого-нибудь есть отличные идеи, кроме
хранить список всех TLD?
Нет, поскольку каждый TLD отличается от того, что считается субдоменом, доменом второго уровня и т. Д.
Имейте в виду, что существуют домены верхнего уровня, домены второго уровня и поддоменов. Технически говоря, все, кроме TLD, является поддоменом.
В примере domain.com.uk «домен» - это поддомен, «com» - это домен второго уровня, а «uk» - это TLD.
Таким образом, вопрос остается более сложным, чем на первый взгляд, и зависит от того, как управляется каждый TLD. Вам понадобится база данных всех TLD, которые включают в себя их конкретное разделение и то, что считается доменом второго уровня и поддоменом. Однако TLD не слишком много, поэтому этот список достаточно управляем, но собрать всю эту информацию нетривиально. Возможно, такой список уже имеется.
Похоже, http://publicsuffix.org/ - это один из таких списков - все общие суффиксы (.com, .co.uk и т. Д.) В списке, подходящем для поиска. Разобрать его все равно будет непросто, но, по крайней мере, вам не нужно вести список.
«Публичный суффикс» - это тот, под которым
Интернет-пользователи могут напрямую зарегистрироваться
имена. Некоторые примеры публичного
Суффиксами являются ".com", ".co.uk" и
"Pvt.k12.wy.us". Общественный суффикс
Список - это список всех известных публике
суффиксы.
Публичный список суффиксов является
инициатива фонда Mozilla.
Доступно для использования в любом
программное обеспечение, но изначально был создан
для удовлетворения потребностей браузера
производители. Это позволяет браузерам
например:
- Избегайте "супер-печенья", наносящего ущерб конфиденциальности
суффиксы доменных имен высокого уровня
- Выделите наиболее важную часть доменного имени у пользователя
интерфейс
- Точная сортировка записей истории по сайту
Просматривая список , вы видите, что это не тривиальная проблема. Я думаю, что список - единственный правильный способ сделать это ...