103 votes

Caractères valides d'un nom d'hôte ?

Quels sont les caractères valides d'un nom d'hôte ? Il s'agit de quelque chose comme un ordinateur en réseau ou un domaine web.

Pour mettre cela en contexte, je suis en train d'écrire un jeu PC qui se connecte à un serveur distant ; donc j'ai un champ pour le nom d'hôte et un champ pour le port. Évidemment, le port est un nombre dans la plage courte, mais j'ai besoin de savoir quels sont tous les caractères possibles pour un nom d'hôte (et tout autre motif qui pourrait être requis - est-ce qu'un nom d'hôte doit commencer par une lettre ?).

Des exemples de nom d'hôte incluent localhost ou google.com.

110voto

Aaron Hathaway Points 2857

Découvrez ce wiki, en particulier la section Restrictions sur les noms d'hôtes valides

Les noms d'hôtes sont composés de séries d'étiquettes concaténées avec des points, comme tous les noms de domaine. Par exemple, "fr.wikipedia.org" est un nom d'hôte. Chaque étiquette doit être comprise entre 1 et 63 caractères de longueur, et l'ensemble du nom d'hôte (y compris les points délimitants mais sans un point final) a un maximum de 253 caractères ASCII.

Les normes Internet (Requests for Comments) pour les protocoles exigent que les étiquettes des noms d'hôtes ne contiennent que les lettres ASCII 'a' à 'z' (de manière insensible à la casse), les chiffres '0' à '9' et le trait d'union ('-'). La spécification originale des noms d'hôtes dans RFC 952 imposait que les étiquettes ne pouvaient pas commencer par un chiffre ou un trait d'union, et ne devaient pas se terminer par un trait d'union. Cependant, une spécification ultérieure (RFC 1123) a permis aux étiquettes des noms d'hôtes de commencer par des chiffres. Aucun autre symbole, caractère de ponctuation ou espace blanc n'est autorisé.

31voto

Jon Hanna Points 40291

Il dépend de savoir si vous traitez des IDN avant ou après l'algorithme IDN toASCII (c'est-à-dire, voyez-vous le nom de domaine παράδειγμα.δοκιμή en grec ou sous forme de xn--hxajbheg2az3al.xn--jxalpdlp?).

Dans le dernier cas - où vous travaillez avec des IDN via le punycode - les anciennes règles RFC 1123 s'appliquent:

U+0041 à U+005A (A-Z), U+0061 à U+007A (a-z) plié en périphérie, U+0030 à U+0039 (0-9) et U+002D (-).

et bien sûr U+002E (.); les règles pour les étiquettes permettent les autres, avec des points entre les étiquettes.

Si vous le voyez sous forme IDN, les caractères autorisés sont très variés, voir http://unicode.org/reports/tr36/idn-chars.html pour un tableau pratique de tous les caractères valides.

Il est probable que votre code réseau gérera le punycode, mais votre code d'affichage (ou même simplement le passage de chaînes à d'autres couches) avec la forme plus lisible pour l'humain car personne n'exploitant un serveur sur le domaine السعودية ne veut voir leur serveur répertorié comme étant sur .xn--mgberp4a5d4ar.

3voto

Vivek Points 41

Un "nom" (Nom Net, Hôte, Passerelle, ou Nom de domaine) est une chaîne de texte jusqu'à 24 caractères tirée de l'alphabet (A-Z), des chiffres (0-9), du signe moins (-), et du point (.). Notez que les points ne sont autorisés que lorsqu'ils servent à délimiter les composants des "noms de style de domaine" (Voir RFC-921, "Système de mise en œuvre du système de noms de domaine", pour plus d'informations). Aucun caractère vide ou espace n'est autorisé en tant que partie d'un nom. Aucune distinction n'est faite entre les majuscules et les minuscules. Le premier caractère doit être une lettre alphabétique. Le dernier caractère ne doit pas être un signe moins ou un point. Un hôte qui sert de PASSERELLE doit avoir "-PASSERELLE" ou "-GW" comme partie de son nom. Les hôtes qui ne servent pas de passerelles Internet ne doivent pas utiliser "-PASSERELLE" et "-GW" comme partie de leurs noms. Un hôte qui est un TAC doit avoir "-TAC" comme dernière partie de son nom d'hôte, s'il s'agit d'un hôte DoD. Les noms d'une seule lettre ou les surnoms ne sont pas autorisés.

Ceci est fourni dans http://support.microsoft.com/kb/149044

0voto

Si vous enregistrez un domaine et que la terminaison (par exemple .com) n'est pas IDN, comme l'a dit Aaron Hathaway : Les noms d'hôtes sont composés de séries d'étiquettes concaténées avec des points, comme le sont tous les noms de domaine. Par exemple, en.wikipedia.org est un nom d'hôte. Chaque étiquette doit comporter entre 1 et 63 caractères, et l'ensemble du nom d'hôte (incluant les points de délimitation mais sans un point final) a un maximum de 253 caractères ASCII.

Les normes Internet (Requests for Comments) pour les protocoles imposent que les étiquettes composant les noms d'hôtes ne peuvent contenir que les lettres ASCII a à z (de manière insensible à la casse), les chiffres 0 à 9, et le tiret -. La spécification originale des noms d'hôtes dans le RFC 952 exigeait que les étiquettes ne pouvaient pas commencer par un chiffre ou un tiret, et ne devaient pas se terminer par un tiret. Cependant, une spécification ultérieure (RFC 1123) a permis aux étiquettes de noms d'hôtes de commencer par des chiffres. Aucun autre symbole, caractère de ponctuation ou espace blanc n'est autorisé.

Plus tard, l'Espagne avec ses .es, .com.es, .org.es, .nom,es, .gob.es et .edu.es a introduit des tld IDN, si votre tld est l'un de .es ou autre qui le supporte, n'importe quel caractère peut être utilisé, mais vous ne pouvez pas combiner des alphabets comme le latin, le grec ou le cyrillique dans un même nom d'hôte, et cela respecte les règles de ce qui ne peut pas être placé au début ou à la fin.

Si vous utilisez des tlds non enregistrés, simplement pour un réseau local, par exemple avec un DNS local ou avec des fichiers hosts, vous pouvez les traiter tous comme des IDN.

Gardez à l'esprit que certains programmes pourraient ne pas fonctionner correctement, en particulier les plus anciens, obsolètes et impopulaires.

0voto

U53r Points 1

La bonne réponse dépend également de si vous souhaitez installer Kubernetes sur cette machine ultérieurement. Dans le cas où vous utiliserez cette machine pour installer un cluster Kubernetes, le nom du nœud Kubernetes sera le nom de votre machine, et le nom d'un nœud doit être un nom de sous-domaine DNS valide tel que défini dans la RFC 1123. https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names

Cela signifie que le nom doit :

  • ne contenir pas plus de 253 caractères
  • ne contenir que des caractères alphanumériques en minuscules, '-' ou '.'
  • commencer par un caractère alphanumérique
  • finir par un caractère alphanumérique

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X