維基百科指出強調are used by both Android and Microsoft Windows Systems in hostnames。我的問題是,這些主機名是什麼?你有這些奇怪的主機名稱的例子和它們用於什麼?在主機名中使用下劃線
回答
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
主機名是(通常是DNS)名稱解析中使用的{完全限定}名稱。下劃線雖然明顯允許,但不符合有關允許字符的適當rfc,並且如果在本地環境外使用,可能會引起不兼容問題。
也許Windows有這個從90年代的一個NetBIOS/NETBEUI解酒。
您對維基百科頁面的閱讀不正確。它並不是說那些系統使用下劃線,它表示他們支持下劃線。
如果這種系統的管理員在配置時使用下劃線,那麼當它無法與世界其他地方互操作時,這是他自己的錯。
主機名(包括域組件)只允許包含字母字符,數字字符,連字符和句點。這最初在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"。
我意識到很多這些問題都是在其他答案中作出的,但我沒有看到任何綜合這些問題或足夠清楚地說明DNS中的有效域名與有效主機名之間的區別。 –
- 1. 使用下劃線_主鍵在MySQL
- 2. 前下劃線的主題名稱
- 3. 替代URI.parse,允許主機名包含下劃線
- 4. QUrl不解析帶下劃線的主機名
- 5. 使用c在RichTextBox中將下劃線加下劃線
- 6. 類名中的下劃線
- 7. 如何讓Resharper允許在方法名中使用下劃線,但只能在測試中使用下劃線?
- 8. 在變量名稱和方法名稱中使用下劃線
- 9. 使用下劃線
- 10. 在主幹/下劃線模板中使用循環
- 11. 金桂冠:虛擬主機用下劃線不起作用
- 12. 下劃線主題子菜單現在在手機上顯示
- 13. 在文件名中帶有下劃線
- 14. Scala在名稱中加下劃線
- 15. 在Ruby on Rails中使用短劃線`-`而不是下劃線`_`
- 16. 在字符串中使用下劃線
- 17. 在CSS中使用斜角下劃線
- 18. 應該在列名中使用下劃線嗎?
- 19. 爲什麼在HTTP頭名中禁止使用下劃線
- 20. 在班級名稱中使用下劃線
- 21. 在joomla菜單別名中使用下劃線(_)
- 22. 在文件名中使用變量,下劃線
- 23. 用下劃線
- 24. 用下劃線
- 25. 使用下劃線字符
- 26. 如何使用下劃線
- 27. sortby使用下劃線
- 28. 使用下劃線js reduce
- 29. 使用jquery,主幹,下劃線使用requirejs全局?
- 30. PHP和MySQL用戶名與下劃線
只是想讓你知道,不,主機名中的_不是有效的字符,即使它在DNS記錄中是完全合法的。作爲一個例子,爲什麼你不應該接受它,當試圖解析(例如,當發出請求時)包含帶有_的主機名的URL時,Java,.Net,Zend PHP,Ruby等等會拋出。 –