Est-il valide qu'un nom d'hôte commence par un chiffre? par exemple8server
D'après la lecture de la RFC 1123, il semblerait qu'il s'agisse d'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 exemple8server.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 de discussion goyave .
4chan.com
est un nom d'hôte valide (et bien connu) qui commence par un numéro.Réponses:
La RFC 1123 assouplit une contrainte de la RFC 952 qui spécifie un héritage du protocole de serveur de nom d'hôte (décrit dans la RFC 953 ) remplacé par le 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:
Cependant, il était prévu dans les directives RFC 1178 de choisir un nom d'hôte valide en raison de problèmes d'implémentation. 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’ils étaient des adresses IP jusqu’à ce qu’ils 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 la 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 d'origine pour les noms d'hôte et ajouté la prise en charge des caractères de soulignement ( RFC 2782 ).
Mise à jour Comme demandé dans les commentaires, clarification de la phrase: Toutefois, un nom d’hôte valide ne peut jamais avoir la forme décimale en pointillé #. #. #. #, 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 . Par conséquent, le nom d'hôte qualifié complet ne peut jamais être confondu avec une adresse IPv4. La RFC 3696 pour le DNS a clarifié cette idée et l'a modifiée en une solution non entièrement numérique . Notez la légère différence.
la source
À 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");
la source
InternetDomainName.isValid("server");
retourne vrai.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.
la source