Czy nazwa hosta może zaczynać się od cyfry? na przykład8server
Po przeczytaniu RFC 1123 wydaje się, że jest to poprawna nazwa hosta. Nie jestem jednak pewien, czy nazwa hosta może zaczynać się od cyfry tylko wtedy, gdy występuje sufiks, np8server.com
Źródłem tego pytania jest to, że InternetDomainName.isValid("8server");
w bibliotece Google Guava ( Javadoc ) odrzuca dane wejściowe. Wysłałem też konkretne pytanie do grupy dyskusyjnej Guava .
4chan.com
jest prawidłową (i dobrze znaną) nazwą hosta, która zaczyna się od cyfry.Odpowiedzi:
RFC 1123 rozluźnia ograniczenie RFC 952, które określa starszą wersję protokołu Hostname Server Protocol (opisanego w RFC 953 ) zastąpionego przez DNS. Zatem w pełni numeryczna nazwa hosta byłaby poprawna dla tych RFC.
Sam RFC 1123 omawia konsekwencje przetwarzania IP w porównaniu z analizą nazw hostów:
Jednak w wytycznych RFC 1178 przewidziano wybór prawidłowej nazwy hosta z powodu problemów z implementacją. Wiele z tych implementacji nie rozpoznaje numerycznych nazw hostów i próbuje je parsować tak, jakby były adresami IP, dopóki nie zawierają co najmniej jednego znaku nienumerycznego, bez względu na lokalizację.
Przekonasz się również, że implementacje nie zawsze uwzględniają inne oryginalne ograniczenia RFC 952, pozwalając na przykład, aby nazwa hosta kończyła się znakiem minus lub kropką.
DNS zachował te oryginalne specyfikacje nazw hostów i dodał obsługę podkreśleń ( RFC 2782 ).
Aktualizacja Zgodnie z żądaniem w komentarzach, wyjaśnienie zdania: Jednak poprawna nazwa hosta nigdy nie może mieć formy kropkowo-dziesiętnej #. #. #. #, Ponieważ przynajmniej etykieta komponentu najwyższego poziomu będzie alfabetyczna . Oznacza to, że nazwa domeny najwyższego poziomu musi być alfabetyczna , dlatego w pełni kwalifikowanej nazwy hosta nigdy nie można pomylić z adresem IPv4. Pomysł ten został wyjaśniony przez RFC 3696 dla DNS i zmieniony na nieliczbowy . Zwróć uwagę na niewielką różnicę.
źródło
Początkowo nazwa hosta nie mogła zaczynać się cyfrą lub podkreśleniem ( RFC 952 ), ale nowa specyfikacja RFC 1123, jak wspomniałeś, pozwala na to.
W przypadku wywołania funkcji isValid () w tym przypadku należy podać pełną nazwę domeny w parametrze:
InternetDomainName.isValid("8server.com");
źródło
InternetDomainName.isValid("server");
powraca prawda.Tak. RFC 1123 wyraźnie na to pozwala i oto przykład:
http://9292.nl/
To planer trasy dla holenderskiego transportu publicznego.
źródło