主机名的有效字符是什么?这可能类似于联网计算机或网络域。
把它放在上下文中,我正在写一个连接到远程服务器的PC游戏;所以我有一个主机名字段和一个端口字段。显然端口是Short范围内的一个数字,但是我需要知道所有可能的主机名字符是什么(以及可能需要的任何其他模式 - 主机名是否需要以字母开头?)。
主机名示例包括localhost
或google.com
。
答案 0 :(得分:78)
结帐wiki,特别是有效主机名限制
部分主机名由与点连接的一系列标签组成,所有域名也是如此。例如,“en.wikipedia.org”是主机名。每个标签的长度必须介于1到63个字符之间,整个主机名(包括分隔点但不包括尾随点)最多包含253个ASCII字符。
协议的Internet标准(请求注释)要求组件主机名标签只能包含ASCII字母“a”到“z”(不区分大小写),数字“0”到“9”,和连字符(' - ')。 RFC 952中主机名的原始规范,强制标签不能以数字或连字符开头,并且不得以连字符结尾。但是,后续规范(RFC 1123)允许主机名标签以数字开头。不允许使用其他符号,标点字符或空格。
答案 1 :(得分:20)
这取决于您是否在IDN toASCII算法之前或之后处理IDN。 (也就是说,您认为域名παράδειγμα.δοκιμή
为παράδειγμα.δοκιμή
还是xn--hxajbheg2az3al.xn--jxalpdlp
在后一种情况下 - 您通过punycode处理IDN,然后适用旧的RFC 1123规则:
U + 0041至U + 005A(A-Z),U + 0061至U + 007A(a-z)情况彼此折叠,U + 0030至U + 0039(0-9)和U + 002D( - )。 [编辑:和U + 002E(。)当然;标签的规则允许其他标签,标签之间有点,有时它是最容易忘记的明显位[]
如果您以IDN形式看到它,允许的字符变化很大,请参阅http://unicode.org/reports/tr36/idn-chars.html以获取所有有效字符的便捷图表。
有可能你的网络代码将处理punycode,但你的显示代码(甚至只是将字符串传递到其他层或从其他层传递)与更人性化的形式,因为没有人在السعودية上运行服务器。 domain希望看到他们的服务器列在.xn上 - mgberp4a5d4ar
答案 2 :(得分:3)
A"名称" (网络,主机,网关或域名)是一个文本字符串,最多24个字符,从字母表(A-Z),数字(0-9),减号( - )和句点(。)中提取。请注意,仅当用于分隔"域样式名称的组件时才允许使用句点"。 (有关背景信息,请参阅RFC-921,"域名系统实施时间表")。不允许使用空格或空格字符作为名称的一部分。大小写没有区别。第一个字符必须是字母字符。最后一个字符不能是减号或句号。作为网关的主机应该有" -GATEWAY"或" -GW"作为其名称的一部分。不作为互联网网关的主机不应使用" -GATEWAY"和" -GW"作为他们名字的一部分。作为TAC的主机应该具有" -TAC"作为其主机名的最后一部分,如果它是DoD主机。不允许使用单个字符名称或昵称。
中提供答案 3 :(得分:0)
如果您要注册域和终止(例如.com
),则它不是IDN,如Aaron Hathaway所说:
主机名由一系列带有点的标签组成,所有域名也是如此。例如,en.wikipedia.org
是主机名。每个标签的长度必须在1到63个字符之间,并且整个主机名(包括定界点而不是尾随点)最多可以包含253个ASCII字符。
协议的Internet标准(请求注释)要求组件主机名标签只能包含ASCII字母a
至z
(不区分大小写),数字{{1} }到0
,以及连字符9
。 RFC 952中主机名的原始规范要求标签不能以数字或连字符开头,并且不能以连字符结尾。但是,随后的规范(RFC 1123)允许主机名标签以数字开头。不允许使用其他符号,标点符号或空格。
在西班牙后来,-
,.es
,.com.es
,.org.es
,.nom,es
和.gob.es
引入了IDN tld,如果您的tld是.edu.es
或支持它的任何其他字符之一,可以使用任何字符,但是您不能在一个主机名中组合拉丁字母,希腊字母或西里尔字母,并且它尊重不能使用的东西开始或结束。
如果您使用未注册的顶级域名(TLD),仅用于本地网络,例如使用本地DNS或使用主机文件,则可以将它们全部视为IDN。
请记住,某些程序不能很好地运行,特别是旧的,过时的和不受欢迎的程序。