56 votes

Quel est le nombre maximum de caractères pour un nom d'hôte sous Unix ?

Je me demande quel est le nombre maximum de caractères pour un nom d'hôte dans un système Unix. De plus, existe-t-il une variable définie pouvant être utilisée dans la programmation Unix pour appeler ce numéro ? (c'est-à-dire nombre de caractères autorisés pour un nom d'hôte).

Je programme en C.

74voto

Michael Points 958

Vous pouvez généralement taper :

 getconf HOST_NAME_MAX

De plus, vous pouvez généralement inclure limited.h dans votre application et lire la valeur de define.

Bien que la norme POSIX indique qu'il est garanti de ne pas dépasser 255 octets, cela ne signifie pas nécessairement que chaque implémentation s'y conformera.

man gethostname sur votre plateforme pour obtenir des informations plus détaillées.

21voto

zrvan Points 1918

Selon la RFC 1035, la longueur d'un nom de domaine complet est limitée à 255 caractères et chaque étiquette (nœud délimité par un point dans le nom d'hôte) est limitée à 63 caractères, donc la limite que vous recherchez est de 63.

Vous pouvez obtenir cette valeur en exécutant getconf HOST_NAME_MAX dans le terminal.

12voto

一二三 Points 11508

Les noms d'hôtes sont généralement limités à 255 octets . HOST_NAME_MAX (ou _POSIX_HOST_NAME_MAX ) défini dans <limits.h> contiendra la valeur spécifique.

3voto

Randall Cook Points 3003

Voici un exemple de code qui rassemble le tout :

 #include <limits.h>
#include <unistd.h>
#include <stdio.h>

char host[HOST_NAME_MAX + 1];

host[HOST_NAME_MAX] = 0;

if (gethostname(host, sizeof(host) - 1) == 0)
{
    printf("hostname is %s\n", host);
}

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