Является gov.uk дву или домен?

#python #url #dns #urllib #tld

Вопрос:

Фон

Запустив этот фрагмент кода в интерпретаторе python, мы получим IP-адрес для gov.uk .

 >>> import socket
>>> socket.gethostbyname('gov.uk')
'151.101.64.144'
 

gov.uk является ДВУ в соответствии с Википедией и Общедоступным списком суффиксов. Аналогичные ДВУ, которые также являются доменами , включают gov.au , gov.br , и s3.amazonaws.com .

Пытаясь ответить на этот вопрос с помощью python, я попытался использовать url-анализ, но я просто получаю большой двоичный объект домена:

 >>> from urllib.parse import urlparse
>>> urlparse('http://gov.uk')
ParseResult(scheme='http', netloc='gov.uk', 
    path='', params='', query='', fragment='')
 

Используя tldextract, похоже, что нет домена или поддомена.

 >>> import tldextract
>>> tldextract.extract('https://gov.uk')
ExtractResult(subdomain='', domain='', suffix='gov.uk')
 

Вопрос

Например https://gov.uk , какая часть является доменом, а какая-ДВУ?

Комментарии:

1. Страница Википедии, на которую вы ссылаетесь, явно перечисляет». gov.uk» в части статьи «Домены второго уровня».

2. @ThierryLathuille Должен ли быть результат tldextract.extract('https://gov.uk') ExtractResult(subdomain='', domain='gov', suffix='uk') ? Если это так, то многие инструменты, включая tldextract, путаются в этом вопросе.

3. В этом нет никакой путаницы. Все домены являются поддоменами, и, следовательно, все поддомены также являются доменами, все это связано с тем, откуда вы смотрите на вещи, поэтому все зависит от ТОГО, ЗАЧЕМ вам нужно делать эту выписку и что вы делаете позже с этими результатами/частями. Используйте терминологию на url.spec.whatwg.org/#host-miscellaneous это совершенно ясно. gov.uk является общедоступным суффиксом (даже если регистрация под ним, безусловно, не настолько публична), это лучший термин, чем eTLD или «эффективный ДВУ». Нужно понимать, что есть 2 аспекта: часть разрешения (здесь все домены) и часть регистрации.

4. Если вам нужен ДВУ со строгим определением, есть только один, строка после последней точки, так uk что здесь. Но это может быть бесполезно для того, что вам нужно сделать, поэтому общедоступный суффикс, возможно, более интересен, что и есть gov.uk . Подобные вещи имеют последствия при поиске административных границ. в этом контексте следует избегать терминов домена и поддомена, поскольку они совсем не помогают. также суффикс. Существует либо общедоступный суффикс, либо ДВУ, а не «суффикс» или «расширение», которого не существует.

5. Учитывая, что у вас есть 2 длинных последовательных комментария, похоже, вы хотите вместо этого опубликовать ответ?

Ответ №1:

gov.uk , например .uk , является эффективным ДВУ или eTLD.

Я взял это из общедоступного суффикса пакета go и списка общедоступных суффиксов на странице Википедии.

Mozilla создала Общедоступный список суффиксов, которым теперь управляет https://publicsuffix.org/list/. Его можно найти в документации Mozilla, но этот термин нигде не встречается в https://publicsuffix.org/list/ на момент написания статьи.

Комментарии:

1. Этот нюанс с eTLDs как бы подразумевается в read.me для tldextract (например, с подобными примерами bbc.co.uk ), но, безусловно, было бы полезно, если бы это было сделано более явно.

2. Документация, в которой есть «нюанс, который как бы подразумевается», — это документация, которая нуждается в улучшении. Я опубликую выпуск.

3. Опубликованный вопрос здесь: github.com/john-kurkowski/tldextract/issues/234