Apakah valid untuk nama host yang dimulai dengan angka? misalnya8server
Dari membaca RFC 1123 akan tampak bahwa ini adalah nama host yang valid. Namun, saya tidak jelas apakah nama host hanya dapat dimulai dengan angka ketika ada akhiran misalnya8server.com
Asal usul pertanyaan ini adalah bahwa InternetDomainName.isValid("8server");
di perpustakaan Google Guava ( Javadoc ) menolak input. Saya juga memposting pertanyaan spesifik pada grup Diskusi Jambu .
4chan.com
adalah nama host yang valid (dan terkenal) yang dimulai dengan angka.Jawaban:
RFC 1123 melonggarkan kendala RFC 952 yang menentukan warisan dari Hostname Server Protocol (dijelaskan dalam RFC 953 ) digantikan oleh DNS. Jadi nama host numerik sepenuhnya akan valid per RFC ini.
RFC 1123 sendiri membahas konsekuensi dalam hal penguraian IP versus hostname:
Namun, itu diberikan dalam pedoman RFC 1178 untuk memilih nama host yang valid karena masalah implementasi. Banyak dari implementasi ini tidak mengenali nama host numerik dengan baik dan mencoba untuk menguraikannya seolah-olah mereka IP sampai mengandung setidaknya satu karakter non-numerik di mana pun lokasinya.
Juga, Anda akan menemukan bahwa implementasi tidak selalu menghormati batasan asli RFC 952 lainnya, yang memungkinkan misalnya nama host diakhiri dengan tanda minus atau titik.
DNS mempertahankan spesifikasi asli ini untuk nama host dan menambahkan dukungan untuk garis bawah ( RFC 2782 ).
Pembaruan Seperti yang diminta dalam komentar, klarifikasi untuk kalimat: Namun, nama host yang valid tidak akan pernah memiliki bentuk desimal bertitik #. #. #. #, Karena setidaknya label komponen tingkat tertinggi akan alfabet . Ini berarti nama domain tingkat atas harus alfabet , sehingga nama host yang memenuhi syarat tidak pernah dapat disamakan dengan alamat IPv4. Gagasan ini telah diklarifikasi oleh RFC 3696 untuk DNS dan diubah menjadi tidak semua-numerik . Perhatikan perbedaannya.
sumber
Awalnya nama host tidak dapat dimulai dengan angka atau garis bawah ( RFC 952 ) tetapi spesifikasi baru RFC 1123, seperti yang Anda sebutkan, memungkinkannya.
Mengenai panggilan ke isValid (), dalam hal ini, nama domain lengkap harus diberikan dalam parameter:
InternetDomainName.isValid("8server.com");
sumber
InternetDomainName.isValid("server");
mengembalikan true.Iya. RFC 1123 dengan jelas memungkinkannya dan inilah contohnya:
http://9292.nl/
Ini perencana rute untuk transportasi umum Belanda.
sumber