Wikipedia 指出,Android 和 Microsoft Windows 系统都在主机名中使用下划线。我的问题是,这些主机名是什么?你有这些奇怪的主机名的例子吗?它们的用途是什么?
5 回答
What are host names?
类似于学校教室,每个学生都有一个卷号/ID,以便识别他/她,在互联网(或任何计算机网络)的教室中,网络中的每个设备都需要唯一标识. 这是通过主机名完成的。因此,主机名是有助于识别网络中设备的名称。
Hostnames with underscore(_) character.
在制定有效和无效标准期间hostnames
,常用的终端接口是电传打字机(TTY)ASR-33的键盘。现在这个键盘从来没有下划线(_)键(检查这张图片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
域名中可以使用下划线(_)字符。正如这篇文章所述,(域名)子域中可以有下划线“_”吗? 有下划线是完全有效的。一些例子(如帖子所示)是_jabber._tcp.gmail.com
或_sip._udp.apnic.net
。另一个使用下划线的例子见http://ideaharbor.org/notes/technical/enabling-chat-outside-google-apps。尽管使用它是有效的,但它不是推荐的做法。
您帖子中的 wikipedia 链接指出,Microsoft Windows 和 Android 智能手机并未强制执行禁止在主机名中使用下划线的规则。不执行此规则可能会导致问题,因为许多系统拒绝此类主机名。
希望你能从这个解释中得到一些东西。
编辑
在对这个问题进行进一步调查时,我发现了这篇精彩的帖子,我想它阐明了主机名中下划线的用法:
http://networkadminkb.com/KB/a156/windows-2003-dns-and-the-underscore.aspx
您对维基百科页面的阅读不正确。它并不是说这些系统使用下划线,而是说它们支持下划线。
如果这样一个系统的管理员在配置它时使用下划线,那么当它无法与世界其他地方进行互操作时,这是他自己的错。
主机名(包括域组件)只允许包含字母字符、数字字符、连字符和句点。这最初是在RFC 952中指定的,并在RFC 1123中进行了更新。问题中链接的维基百科文章说,Android 和 Windows允许使用违反此语法的主机名。
这些名称绝对是无效的主机名,但它们是明确有效的 DNS 记录,即使它们是通常包含主机名的地址记录。我不知道使用下划线的野外主机名示例。为什么允许这样做?如RFC 2181的“名称语法”部分所述,DNS 旨在成为通用命名服务,因此它不会尝试强制执行可能适用于单个记录类型的所有不同名称语法。
因此,即使主机名中不允许使用下划线,程序是否应该允许使用下划线的问题也更加微妙。在 DNS 的上下文中,必须允许使用下划线。如果您正在设置特定机器的主机名,则绝对应该禁止它们,因为它们是无效的。如果您使用主机名,比如访问一个 URL,我想您可能会争辩说,如果它解决了,您应该允许它,以努力“在您接受的内容上保持自由”。
WayBack 机器上有这个列表,但它可能不再准确。
并用于配置域名系统 (DNS) 服务器。
主机名是(通常是 DNS)名称解析中使用的{完全限定}名称。下划线虽然显然是允许的,但不符合关于允许字符的适当 rfc,如果在本地环境之外使用,可能会引发不兼容问题。
也许 Windows 将其视为 90 年代的 Netbios/Netbeui 遗留物。