É válido que um nome de host comece com um dígito? por exemplo8server
Ao ler o RFC 1123 , parece que este é um nome de host válido. No entanto, não sei se um nome de host só pode começar com um dígito quando houver um sufixo, por exemplo8server.com
A origem desta pergunta é que InternetDomainName.isValid("8server");
na biblioteca do Google Guava ( Javadoc ) rejeita a entrada. Também publiquei uma pergunta específica no grupo Guava Discuss .
4chan.com
é um nome de host válido (e bem conhecido) que começa com um número.Respostas:
O RFC 1123 relaxa uma restrição do RFC 952, que especifica um legado do Hostname Server Protocol (descrito no RFC 953 ) substituído pelo DNS. Portanto, um nome de host totalmente numérico seria válido para esses RFCs.
O próprio RFC 1123 discute as consequências quando se trata de IP versus análise de nome de host:
No entanto, foi fornecido nas diretrizes da RFC 1178 para escolher um nome de host válido devido a problemas de implementação. Muitas dessas implementações não reconhecem bem os nomes de host numéricos e tentam analisá-los como se fossem IPs até que contenham pelo menos um caractere não numérico, independentemente da localização.
Além disso, você descobrirá que as implementações nem sempre respeitam outras restrições originais do RFC 952, permitindo, por exemplo, que o nome do host termine com um sinal de menos ou um ponto.
O DNS preservou essas especificações originais para nomes de host e adicionou suporte para sublinhados ( RFC 2782 ).
Atualização Conforme solicitado nos comentários, esclarecimentos para a frase: No entanto, um nome de host válido nunca pode ter a forma decimal com pontos #. #. #. #, Pois pelo menos o rótulo do componente de nível mais alto será alfabético . Isso significa que o nome de domínio de nível superior deve ser alfabético , portanto, o nome completo do host nunca pode ser confundido com um endereço IPv4. Essa idéia foi esclarecida pela RFC 3696 para DNS e alterada para não totalmente numérica . Observe a pequena diferença.
fonte
Originalmente, o nome do host não podia começar com um dígito ou sublinhado ( RFC 952 ), mas a nova especificação RFC 1123, como você mencionou, permite.
Em relação à chamada para isValid (), nesse caso, o nome completo do domínio deve ser passado no parâmetro:
InternetDomainName.isValid("8server.com");
fonte
InternetDomainName.isValid("server");
retorna verdadeiro.Sim. O RFC 1123 permite claramente e aqui está um exemplo:
http://9292.nl/
É o planejador de rotas para o transporte público holandês.
fonte