web-dev-qa-db-fra.com

Est-il valide pour un nom d'hôte de commencer par un chiffre?

Est-il valide pour un nom d'hôte de commencer par un chiffre? par exemple. 8server

D'après la lecture RFC 112 il semblerait que ce soit un nom d'hôte valide. Cependant, je ne sais pas si un nom d'hôte ne peut commencer par un chiffre que s'il y a un suffixe, par exemple 8server.com

L'origine de cette question est que InternetDomainName.isValid("8server"); dans la bibliothèque Google Guava ( Javadoc ) rejette l'entrée. J'ai également posté une question spécifique sur le groupe Guava Discuss .

45
Mark

RFC 1123 assouplit une contrainte de RFC 952 qui spécifie un héritage du Hostname Server Protocol (décrit dans RFC 95 ) remplacé par DNS. Un nom d'hôte entièrement numérique serait donc valide selon ces RFC.

La RFC 1123 elle-même discute des conséquences en ce qui concerne l'analyse IP par rapport au nom d'hôte:

Si un nombre décimal en pointillés peut être entré sans ces délimiteurs d'identification, une vérification syntaxique complète doit être effectuée, car un segment de un nom de domaine hôte est maintenant autorisé à commencer par un chiffre et pourrait être légalement entièrement numérique (voir la section 6.1.2.4). Cependant, un nom d'hôte valide ne peut jamais avoir la forme décimale à points #. #. #. #, Car au moins l'étiquette de composant de plus haut niveau sera alphabétique.

Cependant, il a été fourni dans RFC 1178 directives pour choisir un nom d'hôte valide en raison de problèmes d'implémentation. Beaucoup de ces implémentations ne reconnaissent pas bien les noms d'hôtes numériques et essaient de les analyser comme s'il s'agissait d'adresses IP jusqu'à ce qu'elles contiennent au moins un caractère non numérique, quel que soit l'emplacement.

En outre, vous constaterez que les implémentations ne respectent pas toujours les autres contraintes d'origine de RFC 952, permettant par exemple au nom d'hôte de se terminer par un signe moins ou un point.

DNS a conservé ces spécifications d'origine pour les noms d'hôtes et ajouté la prise en charge des traits de soulignement ( RFC 2782 ).

Mise à jour Comme demandé dans les commentaires, clarification de la phrase: Cependant, un nom d'hôte valide ne peut jamais avoir la forme décimale à points #. # . #. #, car au moins l'étiquette du composant de plus haut niveau sera alphabétique. Cela signifie que le nom de domaine de premier niveau doit être alphabétique, ainsi le nom d'hôte complet ne peut jamais être confondu avec une adresse IPv4. Cette idée a été clarifiée par RFC 3696 pour DNS et changée en pas tout numérique. Notez la légère différence.

33
Xavier Lucas

À l'origine, le nom d'hôte ne pouvait pas commencer par un chiffre ou un trait de soulignement ( RFC 952 ) mais la nouvelle spécification RFC 1123, comme vous l'avez mentionné, le permet.

Concernant l'appel à isValid (), dans ce cas, le nom de domaine complet doit être passé dans le paramètre: InternetDomainName.isValid("8server.com");

13
Céline Aussourd

Oui. RFC 1123 le permet clairement et voici un exemple:

http://9292.nl/

C'est le planificateur d'itinéraire pour les transports publics néerlandais.

9
Anonymous Coward