2012-06-09 68 views
4

維基百科指出強調are used by both Android and Microsoft Windows Systems in hostnames。我的問題是,這些主機名是什麼?你有這些奇怪的主機名稱的例子和它們用於什麼?在主機名中使用下劃線

+0

只是想讓你知道,不,主機名中的_不是有效的字符,即使它在DNS記錄中是完全合法的。作爲一個例子,爲什麼你不應該接受它,當試圖解析(例如,當發出請求時)包含帶有_的主機名的URL時,Java,.Net,Zend PHP,Ruby等等會拋出。 –

回答

24

What are host names?

類似於學校的教室,每個學生都有一個卷號/ ID,這樣他/她是確定的,在互聯網(或與此有關的任何計算機網絡)每個教室設備在網絡中需要被唯一標識。這是通過主機名完成的。因此主機名稱有助於識別網絡中的設備。

Hostnames with underscore(_) character.

期間,當正在奠定了有效和無效hostnames標準的期間,在公共端子接口是電傳(TTY)ASR-33的鍵盤。現在這個keyborad從來沒有下劃線(_)鍵(檢查這張圖片http://www.pdp8.net/asr33/pics/kbd_top.shtml?large),因此它不可能有一個hostname並帶有下劃線(_)。檢查此鏈接瞭解詳情:http://www.quora.com/Domain-Name-System-DNS/Why-are-underscores-not-allowed-in-DNS-host-names

下劃線(_)字符可以在域名中使用。由於這篇文章陳述了Can (domain name) subdomains have an underscore "_" in it?,所以有一個下劃線是完全有效的。一些例子(如帖子所示)是_jabber._tcp.gmail.com_sip._udp.apnic.net。在這裏看到使用下劃線的另一個例子http://ideaharbor.org/notes/technical/enabling-chat-outside-google-apps。雖然其有效使用強調它不是推薦的做法。

您的文章中的維基百科鏈接指出,Microsoft Windows和Android智能手機不會強制禁止在主機名中使用下劃線。由於許多系統拒絕這種類型的主機名,因此不執行此規則可能會導致問題。

希望你從這個解釋中得到一些東西。

編輯

上的問題進行進一步的調查,我來到這個美好的帖子,我想澄清下劃線的主機名用法:

http://networkadminkb.com/KB/a156/windows-2003-dns-and-the-underscore.aspx

+0

+1這是一個很好的帖子。 – rook

+0

您是否知道主機名中'_'的任何窗口特定用法?我覺得一些M $魔法也可能使用這個功能。 – rook

+0

re:那個鏈接 - 關於RFC 2181是否確實適用於主機名,存在一些問題。我知道其中一位作者,正在等待他的迴應。 – Alnitak

1

主機名是(通常是DNS)名稱解析中使用的{完全限定}名稱。下劃線雖然明顯允許,但不符合有關允許字符的適當rfc,並且如果在本地環境外使用,可能會引起不兼容問題。

也許Windows有這個從90年代的一個NetBIOS/NETBEUI解酒。

6

您對維基百科頁面的閱讀不正確。它並不是說那些系統使用下劃線,它表示他們支持下劃線。

如果這種系統的管理員在配置時使用下劃線,那麼當它無法與世界其他地方互操作時,這是他自己的錯。

3

主機名(包括域組件)只允許包含字母字符,數字字符,連字符和句點。這最初在RFC 952中指定,並在RFC 1123中更新。 The wikipedia article linked in the question表示Android和Windows 允許使用違反此語法的主機名。

這樣的名稱絕對是無效的主機名,但它們是明確有效的DNS記錄,即使它們是通常包含主機名的地址記錄。我不知道野外使用下劃線的主機名示例。爲什麼這是允許的?如RFC 2181的「名稱語法」部分所述,DNS意圖成爲通用命名服務,因此它不會嘗試強制應用於單個記錄類型的所有不同名稱語法。

因此,即使下劃線在主機名中是不允許的,程序是否應該允許它們的問題更爲微妙。在DNS的上下文中,下劃線必須是允許的。如果您正在設置特定機器的主機名,那麼它們肯定會被禁止,因爲它們是無效的。如果你使用的是主機名,比如說訪問一個URL,我想你可以爭辯說,如果它解決了,你應該允許它,努力"be liberal in what you accept"

+0

我意識到很多這些問題都是在其他答案中作出的,但我沒有看到任何綜合這些問題或足夠清楚地說明DNS中的有效域名與有效主機名之間的區別。 –