主机名的有效字符?

Ric*_*ket 74 networking

主机名的有效字符是什么?这将类似于联网计算机或Web域.

把它放在上下文中,我正在编写一个连接到远程服务器的PC游戏; 所以我有一个主机名字段和一个端口字段.显然端口是Short范围内的数字,但是我需要知道所有可能的主机名字符是什么(以及可能需要的任何其他模式 - 主机名是否需要以字母开头?).

主机名的示例包括localhostgoogle.com.

Aar*_*way 79

查看此Wiki,特别是有效主机名的限制部分

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

协议的Internet标准(请求注释)要求组件主机名标签可以仅包含ASCII字母'a'到'z'(以不区分大小写的方式),数字'0'到'9'和连字符( ' - ').RFC 952中主机名的原始规范,强制标签不能以数字或连字符开头,并且不得以连字符结尾.但是,后续规范(RFC 1123)允许主机名标签以数字开头.不允许使用其他符号,标点字符或空格.

  • 确保您清楚自己是在寻找主机名还是完全合格的域名. (5认同)

Jon*_*nna 23

这取决于您是否在IDN toASCII算法之前或之后处理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(.)当然; 标签的规则允许其他标签,标签之间的点,有时它是最容易忘记的明显位

如果您以IDN形式看到它,允许的字符变化很大,请参阅http://unicode.org/reports/tr36/idn-chars.html以获取所有有效字符的方便图表.

有可能你的网络代码将处理punycode,但你的显示代码(甚至只是将字符串传递到其他层或从其他层传递)与更人性化的形式,因为没有人在السعودية上运行服务器.域名希望看到他们的服务器列在.xn上 - mgberp4a5d4ar

  • 关于punycode工作方式的好处是,低于某个级别(你进行网络连接的那个),它都是ASCII.这几乎是一种假装ASCII技术可以与其他文本一起使用的方法(包括以前不允许的一些英文单词).除了给整个单词一个升级路径,它也给你一个:构建它就像RFC 1123所说的那样,如果你以后加入IDN支持,网络代码保持不变,你就可以在顶层添加对RFC 3490的支持(图书馆也有多种语言可供帮助). (2认同)
  • @Ricket不知道是否拼错或者你是否开玩笑说这个名字("ponycode").我个人称他们为"受到惩罚". (2认同)