主机名的有效字符是什么?这就像是联网计算机或Web域。
为了说明这一点,我正在编写一个连接到远程服务器的PC游戏。所以我有一个主机名字段和一个端口字段。显然,端口是短范围内的数字,但是我需要知道所有可能的主机名字符是什么(以及可能需要的其他任何模式-主机名是否需要以字母开头?)。
主机名的示例包括localhost
或google.com
。
Answers:
检出此Wiki,特别是有效主机名的限制部分
主机名由一系列带有点的标签组成,所有域名也是如此。例如,“ en.wikipedia.org”是一个主机名。每个标签的长度必须在1到63个字符之间,并且整个主机名(包括定界点而不是尾随点)最多具有253个ASCII字符。
协议的Internet标准(要求注释)要求组件主机名标签只能包含ASCII字母“ a”至“ z”(不区分大小写),数字“ 0”至“ 9”以及连字符('-')。RFC 952中主机名的原始规范要求标签不能以数字或连字符开头,并且不能以连字符结尾。但是,随后的规范(RFC 1123)允许主机名标签以数字开头。不允许使用其他符号,标点符号或空格。
这取决于您toASCII
是在IDN算法之前还是之后处理IDN (即,您看到的域名παράδειγμα.δοκιμή
是希腊语还是as 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(。);标签规则允许其他标签之间带有点。
如果您以IDN形式看到它,则允许的字符变化很大,有关所有有效字符的便捷图表,请参见http://unicode.org/reports/tr36/idn-chars.html。
您的网络代码很可能会处理punycode,但是您的显示代码(甚至只是将字符串传递到其他层或从其他层传递),因为没有人在السعودية上运行服务器,因此更具可读性。域希望看到其服务器被列为开启状态.xn--mgberp4a5d4ar
。
“名称”(网络,主机,网关或域名)是从字母(AZ),数字(0-9),减号(-)和句点(。)组成的最多24个字符的文本字符串。请注意,仅当句号用于分隔“域名样式名称”的组成部分时才允许使用。(有关背景,请参阅RFC-921,“域名系统实施时间表”)。名称中不允许使用空格或空格字符。大写和小写之间没有区别。第一个字符必须是字母字符。最后一个字符不能为减号或句号。充当网关的主机应在其名称中包含“ -GATEWAY”或“ -GW”。不用作Internet网关的主机不应使用“ -GATEWAY”和“ -GW”作为其名称的一部分。作为TAC的主机应具有“
如果您要注册域和终止符(ex .com
),则它不是IDN,就像Aaron Hathaway所说的那样:主机名与所有域名一样,由一系列带点号的标签组成。例如,en.wikipedia.org
是一个主机名。每个标签的长度必须在1到63个字符之间,并且整个主机名(包括定界点而不是尾随点)最多具有253个ASCII字符。
Internet标准(请求注释),用于协议强制该组件的主机名的标签可以仅包含ASCII字母a
通过z
(在不区分大小写的方式),数字0
通9
和连字符-
。RFC 952中主机名的原始规范要求标签不能以数字或连字符开头,并且不能以连字符结尾。但是,随后的规范(RFC 1123)允许主机名标签以数字开头。不允许使用其他符号,标点符号或空格。
后来,西班牙与它的.es
,.com.es
,.org.es
,.nom,es
,.gob.es
并.edu.es
介绍了IDN顶级域名,如果你的顶级域名之一.es
或任何其他它,任何字符都可以使用的载体,但你不能在一个主机结合喜欢拉丁,希腊或西里尔字母,并尊重开始或结束时无法完成的事情。
如果您使用的是未注册的顶级域名(TLD),仅用于本地网络(如本地DNS或主机文件),则可以将它们全部视为IDN。
请记住,某些程序不能很好地运行,特别是旧的,过时的和不受欢迎的程序。