主机名的有效字符?

什么是主机名的有效字符? 这将是像联网的计算机或networking域。

把它放在上下文中,我正在写一个连接到远程服务器的PC游戏; 所以我有一个主机名字段和端口字段。 很明显,端口是一个短程序中的数字,但是我需要知道所有可能的主机名字符(以及可能需要的任何其他模式 – 主机名是否需要以字母开头?)。

主机名的例子包括localhostgoogle.com

签出这个维基 ,特别是有效主机名的限制

主机名由一系列与点连接的标签组成,所有域名也是如此。 例如,“en.wikipedia.org”是一个主机名。 每个标签的长度必须在1到63个字符之间,整个主机名(包括分隔点,但不是尾部点)最多有253个ASCII字符。

用于协议的因特网标准(请求注解)要求组件主机名标签可以仅包含ASCII字母“a”到“z”(以不区分大小写的方式),数字“0”到“9”以及连字符( ' – ')。 RFC 952中主机名的原始规范要求标签不能以数字或连字符开头,也不能以连字符结尾。 但是,随后的规范(RFC 1123)允许主机名标签以数字开始。 不允许使用其他符号,标点符号或空格。

这取决于在IDN到ASCIIalgorithm之前还是之后处理IDN。 (也就是说,您是否将域名παράδειγμα.δοκιμή视为παράδειγμα.δοκιμήxn--hxajbheg2az3al.xn--jxalpdlp

在后一种情况下 – 通过punycode处理IDN,则适用旧的RFC 1123规则:

U + 0041到U + 005A(AZ),U + 0061到U + 007A(az)的情况彼此折叠,U + 0030到U + 0039(0-9)和U + 002D( – )。 [编辑:和U + 002E(。)当然; 标签的规则允许其他标签之间的点,有时是明显的位是最容易忘记]

如果您使用IDNforms查看,允许的字符多种多样,请参阅http://unicode.org/reports/tr36/idn-chars.html ,以获取所有有效字符的便捷表格。

机会是你的networking代码将处理punycode,但你的显示代码(甚至只是传递string和其他层)与更人类可读的forms,因为没有人在运行服务器上的任何人。 域想要看到他们的服务器列在.xn – mgberp4a5d4ar上

“名称”(networking,主机,网关或域名)是从字母表(AZ),数字(0-9),减号( – )和句点(。)开始的最多24个字符的文本string。 请注意,句点只有在用于分隔“域样式名称”的组件时才被允许。 (有关背景信息,请参阅RFC-921“域名系统实施时间表”)。 作为名称的一部分不允许空格或空格字符。 大小写不区分。 第一个字符必须是字母字符。 最后一个字符不能是减号或句点。 作为GATEWAY的主机应该有“-GATEWAY”或“-GW”作为其名称的一部分。 不作为Internet网关的主机不应使用“-GATEWAY”和“-GW”作为其名称的一部分。 如果是DoD主机,则作为TAC的主机应该具有“-TAC”作为其主机名称的最后部分。 单个字符的名字或昵称是不允许的。

这在http://support.microsoft.com/kb/149044中提供;