2010-08-19 26 views
52

Quali sono i caratteri validi di un nome host? Questo sarebbe qualcosa come un computer in rete o un dominio web.Caratteri validi di un nome host?

Per metterlo in contesto, sto scrivendo un gioco per PC che si collega a un server remoto; quindi ho un campo per hostname e un campo per port. Ovviamente la porta è un numero nella gamma Corta, ma ho bisogno di sapere quali sono tutti i possibili caratteri hostname (e qualsiasi altro modello che potrebbe essere richiesto - un nome host deve iniziare con una lettera?).

Esempi di nome host includono localhost o google.com.

+2

Il comando Linux [sethostname] (http://linux.die.net/man/2/sethostname) accetterà i byte. – OrangeDog

risposta

57

Acquista questo wiki, in particolare la sezione Restrizioni sui nomi host validi

nomi host sono composte da serie di etichette concatenati con i puntini, come lo sono tutti i nomi di dominio. Ad esempio, "en.wikipedia.org" è un nome host. Ogni etichetta deve avere una lunghezza compresa tra 1 e 63 caratteri e l'intero nome host (compresi i punti di delimitazione ma non un punto finale) ha un massimo di 253 caratteri ASCII.

Gli standard Internet (Richieste di commenti) per i protocolli impongono che le etichette del nome host del componente possano contenere solo le lettere ASCII 'a' attraverso 'z' (in modo maiuscole/minuscole), le cifre da '0' a '9' e il trattino ('-'). Le specifiche originali dei nomi host in RFC 952, impongono che le etichette non possano iniziare con una cifra o con un trattino e non devono terminare con un trattino. Tuttavia, una specifica successiva (RFC 1123) consentiva alle etichette del nome host di iniziare con le cifre. Non sono consentiti altri simboli, caratteri di punteggiatura o spazi bianchi.

+2

Assicurati di sapere se stai cercando un nome host o un nome di dominio completo o entrambi. –

17

Dipende se si elaborano IDN prima o dopo l'algoritmo IDAS toASCII. (Vale a dire, vedete il nome di dominio παράδειγμα.δοκιμή come παράδειγμα.δοκιμή o come xn--hxajbheg2az3al.xn--jxalpdlp

In quest'ultimo caso - in cui si sta gestendo IDN attraverso il punycode, applicare poi il vecchio RFC 1123 regole:

U + 0041 attraverso U + 005A (AZ), da U + 0061 a U + 007A (az) caso piegato l'uno nell'altro, da U + 0030 a U + 0039 (0-9) e U + 002D (-). [Modifica: e U + 002E (.) naturalmente, le regole per le etichette consentono agli altri, con punti tra le etichette, a volte sono i bit più ovvi che sono più facili da dimenticare]

Se lo si vede in forma IDN, i caratteri consentiti sono molto vari, vedi http://unicode.org/reports/tr36/idn-chars.html per un han Dy Chart di tutti i caratteri validi.

È probabile che il codice di rete gestisca il codice puny, ma il codice di visualizzazione (o anche solo il passaggio di stringhe da e verso altri livelli) con il formato più leggibile come nessuno che esegue un server su السعودية. dominio desidera vedere il proprio server elencato come in .xn - mgberp4a5d4ar

+0

Wow, non ho mai visto IDN e Ponycode! In questo momento sto pianificando solo il supporto per l'inglese, perché è solo un mio progetto per animali domestici, ma ho sicuramente imparato qualcosa dalla tua risposta! – Ricket

+1

Il bello del modo in cui punycode funziona, è che al di sotto di un certo livello (quello in cui si fa il networking) è tutto ASCII. È praticamente un modo per fingere che un solo tecnico ASCII possa lavorare con altri testi (incluse alcune parole inglesi precedentemente non consentite). Oltre a dare all'intero word un percorso di aggiornamento, ne offre anche uno: costruisci semplicemente come fa RFC 1123, e se successivamente aggiungi il supporto IDN il codice di rete rimane lo stesso e aggiungi il supporto per RFC 3490 in cima (anche le librerie sono disponibili in molte lingue). –

+0

@Ricket non so se digitare o se hai scherzato sul nome ("ponycode"). Li chiamo "punisci", personalmente. –

2

Un "nome" (Net, Host, Gateway o Nome dominio) è una stringa di testo composta da un massimo di 24 caratteri tratti dall'alfabeto (AZ), cifre (0-9), segno meno (-) e punto (.). Tieni presente che i periodi sono consentiti solo quando servono a delimitare componenti di "nomi di stili di dominio". (Vedi RFC-921, "Pianificazione dell'implementazione del sistema dei nomi di dominio", per lo sfondo). Nessun carattere vuoto o spaziale è consentito come parte di un nome. Nessuna distinzione tra maiuscole e minuscole. Il primo carattere deve essere un carattere alfa. L'ultimo carattere non deve essere un segno meno o un punto. Un host che funge da GATEWAY dovrebbe avere "-GATEWAY" o "-GW" come parte del suo nome. Gli host che non fungono da gateway Internet non devono utilizzare "-GATEWAY" e "-GW" come parte dei loro nomi.Un host che è un TAC dovrebbe avere "-TAC" come l'ultima parte del suo nome host, se si tratta di un host DoD. Non sono ammessi nomi di personaggi singoli o nickname.

Questo viene realizzato in http://support.microsoft.com/kb/149044

Problemi correlati