Получите субдомен от URL

100
задан Ry- 30 August 2012 в 17:41
поделиться

6 ответов

у Кого-либо есть какие-либо прекрасные идеи помимо хранения списка всего TLDs?

нет, потому что каждый TLD расходится в том, какие количества как субдомен, второй домен уровня, и т.д.

Имеют в виду, что существуют высокоуровневые домены, вторые домены уровня и субдомены. С технической точки зрения все кроме TLD - субдомен.

В domain.com.uk примере, "домен" является субдоменом, "com" является вторым доменом уровня, и "Великобритания" является TLD.

, Таким образом, вопрос остается более сложным, чем на первый взгляд, и он зависит от того, как каждым TLD управляют. Вам будет нужна база данных всех TLDs, которые включают их конкретное разделение, и что количества как второй домен уровня и субдомен. Нет слишком многих TLDs, тем не менее, таким образом, список довольно управляем, но собирающий всю эту информацию не тривиально. Может уже быть такой доступный список.

Похож , http://publicsuffix.org/ является одним таким list— все общие суффиксы (.com, .co.uk, и т.д.) в списке, подходящем для поиска. Все еще не будет легко проанализировать его, но по крайней мере Вы не должны вести список.

А "общедоступный суффикс" один, под которым интернет-пользователи могут непосредственно зарегистрировать имена. Некоторыми примерами общедоступных суффиксов является ".com", ".co.uk" и "ДОТ k12.wy.us". Общедоступный Суффиксный Список является списком всех известных общедоступных суффиксов.

Общедоступный Суффиксный Список является инициативой Mozilla Foundation. Это доступно для использования в любом программном обеспечении, но было первоначально создано для удовлетворения потребностей производителей браузера. Это позволяет браузеры, например:

  • Избегают повреждающих конфиденциальность "суперcookie", устанавливаемых для высокоуровневых суффиксов доменного имени
  • Выделение самая важная часть доменного имени в пользовательском интерфейсе
  • Точно записи истории вида сайтом

Просмотр списка , Вы видите, что это не тривиальная проблема. Я думаю, что список является единственным корректным способом выполнить это...

71
ответ дан Michael 24 November 2019 в 04:54
поделиться

Бросив беглый взгляд на список publicsuffix.org, кажется, что Вы могли сделать разумное приближение путем удаления заключительных трех сегментов ("сегмент", здесь означающий раздел между двумя точками) от доменов, где заключительный сегмент является двумя символами долго, при условии, что это - код страны и будет далее подразделено. Если заключительный сегмент - "мы", и предпоследний сегмент является также двумя символами, удалите последние четыре сегмента. Во всех других случаях удалите заключительные два сегмента. например:

"примером" не являются два символа, поэтому удалите "domain.example", оставлять "пример" "www"

не является двумя символами, поэтому удалите "domain.example", уезжать из "Великобритании" "super.duper"

является двумя символами (но не "нас"), поэтому удалите "domain.co.uk", оставлять "super.duper"

"нас" является двумя символами и является "нами", плюс "wy" также два символа, поэтому удалите "ДОТ k12.wy.us", оставив "нечто".

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

-3
ответ дан Dave Sherohman 24 November 2019 в 04:54
поделиться

Список общих суффиксов (.co.uk, .com, и так далее) для разделения наряду с http:// и затем у Вас только будет "sub.domain" для работы с вместо" http://sub.domain.suffix ", или по крайней мере это - то, что я, вероятно, сделал бы.

самой большой проблемой является список возможных суффиксов. существует много, в конце концов.

-1
ответ дан Peter C. 24 November 2019 в 04:54
поделиться

Как Adam говорит, это не легко, и в настоящее время единственный практический путь состоит в том, чтобы использовать список.

Даже тогда существуют исключения - например, в .uk существует горстка доменов, которые сразу допустимы на том уровне, которые не находятся в .co.uk, таким образом, те должны быть добавлены как исключения.

Это в настоящее время, как основные браузеры делают это - необходимо гарантировать, что example.co.uk не может установить Cookie для .co.uk, который был бы тогда отправлен в любой другой веб-сайт под .co.uk.

хорошие новости - то, что уже существует список, доступный в http://publicsuffix.org/ .

существует также некоторая работа в IETF для создания своего рода стандарта, чтобы позволить TLDs объявлять то, на что похожа их доменная структура. Это немного сложно, хотя подобными .uk.com, который управляется, как будто это был общедоступный суффикс, но не продается .com реестр.

26
ответ дан Alnitak 24 November 2019 в 04:54
поделиться

Это не разрабатывает его точно, но Вы могли, возможно, получить полезный ответ путем попытки выбрать доменную часть частью и проверки ответа, т.е., выбрать' http://uk ', тогда' http://co.uk ', тогда' http://domain.co.uk '. Когда Вы получаете неошибочный ответ, у Вас есть домен, и остальное - субдомен.

Иногда просто необходимо попробовать его :)

Редактирование:

Tom Leys указывает в комментариях, что некоторые домены настраиваются только на www субдомене, который дал бы нам неправильный ответ в вышеупомянутом тесте. Положительная сторона! Возможно, лучший подход должен был бы проверить, что каждый расстается с' http://www ', а также 'http://' и считает хит любому как хит для того раздела доменного имени? Мы все еще пропустили бы некоторые 'альтернативные' расположения, такие как 'web.domain.com', но я не столкнулся с одним из тех некоторое время:)

0
ответ дан jTresidder 24 November 2019 в 04:54
поделиться

Publicsuffix.org кажется правильным решением. Существует множество реализаций для простого анализа содержимого файла файла данных publicsuffix:

21
ответ дан 24 November 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: