Question Est-il valide qu'un nom d'hôte commence par un chiffre?


Est-il valide qu'un nom d'hôte commence par un chiffre? par exemple. 8server

De la lecture RFC 1123 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 existe 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 aussi posté une question spécifique sur le Discussion goyave groupe.


39
2017-10-20 09:24


origine


Comme preuve par exemple, ils existent: 7dayshop.com - Holloway
Que diriez-vous d'un nom d'hôte composé uniquement de chiffres? 88888888.cn - 小太郎
4chan.com est un nom d'hôte valide (et bien connu) qui commence par un numéro. - IQAndreas
Comment peux-tu oublier 9gag.com? :RÉ - ADTC
@IQAndreas, 4chan.org est une raison suffisante pour le faire invalide. (Je rigole anonyme, ne me faites pas de mal.) - Paul Ruane


Réponses:


La RFC 1123 assouplit une contrainte de la RFC 952 qui spécifie un héritage de la Protocole de serveur de nom d'hôte (décrit dans RFC 953) remplacé par DNS. Donc, un nom d’hôte entièrement numérique serait valide pour ces RFC.

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

Si un nombre décimal en pointillé peut être entré sans cette              identifiant les délimiteurs, une vérification syntaxique complète doit être effectuée.              fait, car un segment de un nom de domaine hôte est maintenant autorisé              pour commencer avec un chiffre et pourrait être légalement entièrement numérique              (voir section 6.1.2.4). Cependant, un nom d’hôte valide ne peut jamais              avoir la forme décimale en pointillé #. #. #. #, car au moins la              L'étiquette de composant de niveau supérieur sera alphabétique.

Cependant, il a été fourni dans RFC 1178 instructions pour choisir un nom d’hôte valide en raison de problèmes de mise en œuvre. Un grand nombre de ces implémentations ne reconnaissent pas bien les noms d’hôte 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 préservé ces spécifications originales pour les noms d’hôte et ajouté la prise en charge des traits de soulignement (RFC 2782).

Mettre à 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 séparée par des points #. #. #. #, Car au moins l'étiquette du composant de niveau supérieur sera alphabétique.. Cela signifie que le nom de domaine de premier niveau doit être alphabétiqueAinsi, le nom d’hôte qualifié complet ne peut jamais être confondu avec une adresse IPv4. Cette idée a été clarifiée par RFC 3696 pour DNS et changé en pas tout numérique. Notez la légère différence.


29
2017-10-20 10:10



Gardez à l'esprit que les implémentations qui ne pouvaient pas gérer les chiffres des noms remontaient aux années 1980; La RFC 1178 a été publiée en 1990. Tout ce qui ne peut pas le supporter à présent est tout simplement buggy. - Michael Hampton♦
@ MichaelHampton Vous seriez surpris de combien de mises en œuvre encore n'honore pas ces RFC. À partir de la gestion des fichiers de vos hôtes linux. - Xavier Lucas
Haha, non je ne voudrais pas. Pas un jour ne passe que je ne pas avoir raison de battre un développeur sur la tête avec un RFC. - Michael Hampton♦
@ Michael Hampton: Vous ne croiriez pas la merde que je vois parfois chez les développeurs. Il y a quelques semaines, j'en ai eu un qui avait créé une page Web de configuration de réseau dans une caméra ip afin que l'utilisateur puisse entrer le nom d'hôte de la caméra. Il n'a effectué AUCUNE validation sur l'entrée utilisateur au format libre. L’utilisateur bêta-test est entré dans la "salle 1.10" et la caméra vidéo l’envoie joyeusement sous forme d’identificateur de client DHCP. Je peux vous assurer que les serveurs DHCP et DNS de Microsoft n’aiment pas cela. C'est une bonne chose que j'ai remarquée auparavant et qui est entré dans la production. Je ne peux que frémir à la pensée de ce qui arrive parfois au client ... - Tonny


À 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é en paramètre: InternetDomainName.isValid("8server.com");


12
2017-10-20 09:40



Un nom de domaine complet doit-il vraiment être transmis à la méthode isValid? Après tout InternetDomainName.isValid("server"); retourne vrai. - Mark
@ Mark OK, j'ai mis à jour la réponse en conséquence - Céline Aussourd


Oui. La 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.


8
2017-10-20 12:42



Il y a beaucoup plus: 9gag.com, 4chan.org, etc.