Действительно ли это допустимо для имени хоста для запуска с цифры?

Действительно ли это допустимо для имени хоста для запуска с цифры? например. 8server

От чтения RFC 1123 казалось бы, что это - допустимое имя хоста. Однако я не ясен на том, может ли имя хоста только запуститься с цифры, когда существует суффикс, например. 8server.com

Источник этого вопроса - это InternetDomainName.isValid("8server"); в Google Guava библиотека (Javadoc) отклоняет вход. Я также отправил конкретный вопрос на Гуаве, Обсуждают группу.

45
задан 20 October 2014 в 23:37
3 ответа

RFC 1123 ослабляет ограничение RFC 952, которое определяет унаследованный протокол Hostname Server Protocol (описанный в RFC 953 ), замененный DNS. Таким образом, полностью числовое имя хоста будет действительным в соответствии с этими RFC.

В RFC 1123 обсуждаются последствия, когда дело доходит до анализа IP и имени хоста:

Если десятичное число с точками может быть введено без такого определения разделителей, тогда должна быть проведена полная синтаксическая проверка. сделано, потому что сегмент доменного имени хоста теперь разрешен начинаться с цифры и по закону может быть полностью числовым (см. раздел 6.1.2.4). Однако действительное имя хоста никогда не может имеют десятичную форму с точками #. #. #. #, поскольку по крайней мере Метка компонента самого высокого уровня будет буквенной.

Однако в RFC 1178 указаниях по выбору допустимого имени хоста было указано, что из-за проблем с реализацией. Многие из этих реализаций плохо распознают числовые имена хостов и пытаются анализировать их, как если бы они были IP-адресами, пока они не содержат хотя бы один нечисловой символ независимо от местоположения.

Кроме того, вы обнаружите, что реализации этого не делают. всегда соблюдайте другие исходные ограничения RFC 952, разрешая, например, имя хоста заканчиваться знаком минус или точкой.

DNS сохранила эти исходные спецификации для имен хостов и добавила поддержку подчеркивания ( RFC 2782 ).

Обновление В соответствии с просьбой в комментариях, пояснение к предложению: Однако допустимое имя хоста никогда не может иметь десятичную форму с точками #. #. #. #, Поскольку по крайней мере компонент самого высокого уровня метка будет буквенной . Это означает, что имя домена верхнего уровня должно быть буквенным , поэтому полное имя хоста никогда не может быть перепутано с IPv4-адресом. Эта идея была разъяснена в RFC 3696 для DNS и изменена на , не полностью числовую . Обратите внимание на небольшую разницу.

33
ответ дан 28 November 2019 в 19:40

Первоначально имя хоста не могло начинаться с цифры или символа подчеркивания ( RFC 952 ), но новая спецификация RFC 1123, как вы упомянули, позволяет это.

Что касается вызова isValid (), в этом случае в параметре следует передать полное доменное имя: InternetDomainName.isValid ("8server.com");

13
ответ дан 28 November 2019 в 19:40

Да. RFC 1123 явно разрешает это, и вот пример:

http://9292.nl/

Это планировщик маршрутов для голландского общественного транспорта.

9
ответ дан 28 November 2019 в 19:40

Теги

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