Bir ana makine adının rakamla başlaması geçerli midir?


45

Bir ana makine adının rakamla başlaması geçerli midir? Örneğin8server

RFC 1123'ü okumaktan itibaren bunun geçerli bir ana bilgisayar adı olduğu görülecektir. Ancak, bir ana bilgisayar adının örneğin bir sonek olduğunda sadece bir rakam ile başlayıp başlamayacağı konusunda net değilim.8server.com

Bu sorunun kaynağı InternetDomainName.isValid("8server");, Google Guava kütüphanesinde ( Javadoc ) girişi reddetmesidir. Ayrıca Guava Tartışma grubuna özel bir soru gönderdim .


2
Örnek olarak bir kanıt olarak, onlar var: 7dayshop.com
Holloway

3
Sadece bir rakam olan hostname hakkında ne düşünüyorsunuz? 88888888.cn
小太郎

7
4chan.comsayı ile başlayan geçerli (ve iyi bilinen) bir ana bilgisayar adıdır.
IQAndreas

3
9gag.com'u nasıl unutabilirsiniz ? : D
ADTC

8
@IQAndreas, 4chan.org, geçersiz kılmak için yeterince iyi bir nedendir . (Sadece anonim şaka yapıyorum, bana zarar verme.)
Paul Ruane

Yanıtlar:


33

RFC 1123 , DNS ile değiştirilen Ana Bilgisayar Adı Sunucu Protokolü'nün ( RFC 953'te açıklanan) bir mirasını belirten bir RFC 952 kısıtlamasını gevşetir . Bu nedenle, tamamen sayısal bir ana bilgisayar adı bu RFC'ler için geçerli olacaktır.

RFC 1123'ün kendisi IP'ye karşı ana bilgisayar adı ayrıştırmaya gelince sonuçlarını tartışıyor:

Eğer sınırlayıcıları tanımlayanlar olmadan noktalı bir ondalık sayı girilebiliyorsa, tam bir sözdizimsel kontrol yapılmalıdır, çünkü bir ana bilgisayar etki alanı adının bir bölümüne şimdi bir rakamla başlamaya izin verilir ve yasal olarak tamamen sayısal olabilir (bkz. Bölüm 6.1). 2.4). Ancak, geçerli bir ana bilgisayar adı hiçbir zaman noktalı - ondalık şekline sahip olamaz, çünkü en azından en üst düzey bileşen etiketi alfabetik olacaktır.

Ancak, uygulama sorunları nedeniyle geçerli bir ana bilgisayar adı seçilmesi RFC 1178 kılavuzlarında sağlanmıştır . Bu uygulamaların çoğu, sayısal ana bilgisayar adlarını iyi tanımıyor ve konumu ne olursa olsun en az bir sayısal olmayan karakter içerinceye kadar IP'leri sanki IPmiş gibi ayrıştırmaya çalışıyor.

Ayrıca, uygulamaların her zaman RFC 952'nin diğer orijinal kısıtlamalarına uymadığını göreceksiniz; örneğin, ana bilgisayar adının eksi işareti veya bir süre ile bitmesine izin verin.

DNS, ana bilgisayar adları için bu orijinal özellikleri korudu ve alt çizgi için destek ekledi ( RFC 2782 ).

Güncelleme Yorumlarda istendiği gibi, cümle için açıklama: Geçerli bir ana bilgisayar adı, #. #. #. # Noktalı bir noktaya sahip olamaz, çünkü en azından en üst düzey bileşen etiketi alfabetik olacaktır . Bu, en üst düzey alan adının alfabetik olması gerektiği anlamına gelir; bu nedenle, tam nitelikli ana bilgisayar adı hiçbir zaman bir IPv4 adresiyle karıştırılamaz. Bu fikir ile açıklığa kavuşturulmuştur RFC 3696 DNS için ve değiştirildi tüm sayısal değil . Küçük farkı not alın.


7
1980'lere tarihlenen isimlerdeki rakamları kaldıramayan uygulamaların; RFC 1178 1990 yılında yayınlandı. Şu an bununla başa çıkamayan herhangi bir şey sadece bir sorun.
Michael Hampton

@MichaelHampton Kaç tane uygulamanın hala bu RFC'leri onurlandırmadığına şaşıracaksınız . Linux'unuzdan itibaren dosya işlemeyi barındırır.
Xavier Lucas

11
Haha, hayır yapmazdım. Çok zor bir gün geçiyor, bir geliştiriciyi RFC ile baştan yenmek için bir nedenim yok.
Michael Hampton

2
@Michael Hampton: Devs'den zaman zaman gördüğüm şeylere inanmazsınız. Birkaç hafta önce bir ip-kamera içinde ağ-yapılandırma web sayfası yapan bir kullanıcı vardı, böylece kullanıcı kamera için ana bilgisayar adını girebildi. Serbest biçimli kullanıcı girişi üzerinde HERHANGİ bir doğrulama yapmadı. Beta testi kullanıcısı "Oda 1.10" a girdi ve kamera bunu DHCP istemcisi tanımlayıcısı olarak gönderdi. Sizi temin ederim Microsoft DHCP ve DNS sunucuları bundan hoşlanmadı. Daha önce fark ettiğim iyi bir şey yapımın yapımına girmişti. Sadece müşteriye ne bulabildiğini düşündüğümde
ürperebiliyorum

13

Başlangıçta ana bilgisayar adı bir rakam veya alt çizgi ile başlayamadı ( RFC 952 ), ancak sizin belirttiğiniz gibi RFC 1123 yeni spesifikasyonu izin veriyor.

İsValid () çağrısı ile ilgili olarak, bu durumda, tam alan adının parametre ile iletilmesi gerekir: InternetDomainName.isValid("8server.com");


Tam etki alanı adının gerçekten isValid yöntemine geçirilmesi gerekir mi? Sonuçta InternetDomainName.isValid("server");doğru gelir.
Mark

@Mark Tamam, cevabı buna göre güncelledik
Céline Aussourd

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.