Networking DNS名称是否看起来像IP地址?
我的问题源于这个过程:假设一个应用程序有一个主机或地址字段,并且希望连接到该地址的某个服务。许多应用程序会查看该地址并猜测它是ip地址还是主机名。此应用程序可以使用类似inet\u pton()的函数来执行此检查。如果该地址看起来确实像ip地址,则应用程序不会执行DNS查找并直接使用该ip地址 现在,我不是说这是一个好主意,但是如果有人定义了一个类似于1.2.3.4的dns名称会怎么样呢。这看起来像一个ip地址,因此上面的应用程序将使用该as和ip地址,而不是DNS名称Networking DNS名称是否看起来像IP地址?,networking,dns,ip,ip-address,domain-name,Networking,Dns,Ip,Ip Address,Domain Name,我的问题源于这个过程:假设一个应用程序有一个主机或地址字段,并且希望连接到该地址的某个服务。许多应用程序会查看该地址并猜测它是ip地址还是主机名。此应用程序可以使用类似inet\u pton()的函数来执行此检查。如果该地址看起来确实像ip地址,则应用程序不会执行DNS查找并直接使用该ip地址 现在,我不是说这是一个好主意,但是如果有人定义了一个类似于1.2.3.4的dns名称会怎么样呢。这看起来像一个ip地址,因此上面的应用程序将使用该as和ip地址,而不是DNS名称 从观察结果来看,似乎大多
从观察结果来看,似乎大多数应用程序的行为都与第一段中描述的一样。这对我来说似乎有一些好处。是否有任何文档说明不应使用看起来像IP地址的DNS名称。或者任何说明即使有人将DNS名称定义为IP地址,也可以不将其视为IP地址的文档。要查看的相关规范是: 如果可以在没有此类识别分隔符的情况下输入带点的十进制数,则必须进行完整的语法检查,因为现在允许主机域名的某个段以数字开头,并且在法律上可以完全是数字(见第6.1.2.4节)。但是,一个有效的主机名永远不能有点十进制形式#.#.#.#,因为至少最高级别的组件标签是字母
要查看的相关规范是: 如果可以在没有此类识别分隔符的情况下输入带点的十进制数,则必须进行完整的语法检查,因为现在允许主机域名的某个段以数字开头,并且在法律上可以完全是数字(见第6.1.2.4节)。但是,一个有效的主机名永远不能有点十进制形式#.#.#.#,因为至少最高级别的组件标签是字母
其他人已经回答了,但我会补充和巩固 相关RFC:
- (原件)
- (修订)
- (额外)
此外,如最终RFC中所述,某些SLD和TLD是保留的,无法注册。其他SLD和TLD已回答,但我将添加并合并 相关RFC:
- (原件)
- (修订)
- (额外)