0

我创建了一个域名,例如:même.vip
我可以在数据库中看到,该域名已在 IDN 表中注册:“fr”。

但是,“ê”可以是葡萄牙语、挪威语等...

我试图了解谁在这里假设 IDN 表...

  • 我可以看到 EPP 事务 - 它没有使用 IDN 扩展,因此无法向服务器提供 IDN 表,即使它想要
  • 我无法访问填充该数据库记录的代码

因此,我最好的机会是知道 Punycode 域名是否包含有关使用哪个表的信息。如果不是:那么我知道它是数据库或注册表中的某些服务,在 EPP 命令之后。
(当然,如果 punycode 确实包含 IDN 表,那么我还有更多工作要做!)

4

1 回答 1

0

Punycode 域名 (UName) 是否存储使用的 IDN 表?

TL;DR:不。

您正在混合多种事物,但很难总结所有内容(我在https://webmasters.stackexchange.com/a/122160/75842做了一个非常详细的回答,应该对您有所帮助)。

对于计算机,ê无论是葡萄牙语还是挪威语在 DNS 级别上都没有区别。与 Unicode 级别的方式相同,ê“U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX”只是定义为“拉丁”字符,而不管可能使用哪种语言。

简而言之:

  • IETF 发明了 Punycode 算法,更准确地说是 IDNA 标准,只是为了确保人们可以在其域名中使用(几乎)任何字符。因此,该算法只是从“任何 Unicode 字符串”到“以“开头的 ASCII 字符串xn--”的转换

  • 域名行业与 ICANN 和所有注册管理机构一起决定在此之上的规则。例如,有一个主要规则“你不能在同一个字符串中混合来自多个脚本的字符”,主要是为了避免 IDN 同形异义词攻击(所以不是真正的技术限制);我上面的回答详细说明了这一点。

  • 在 EPP 级别,各种参与者创建了各种扩展,这里没有真正标准化的“IDN”规范。这也是为什么你会发现人们谈论“脚本”,其他人谈论“语言”,其他人谈论“曲目”等等。这是一团糟(Unicode 只谈论脚本,而不是语言)。一些注册中心不使用任何扩展名,而另一些则使用。有些人希望您始终传递 IDN“表”(又名脚本/语言/其他)参考,有些人只在某些情况下需要它。例如,查看https://www.verisign.com/en_US/channel-resources/domain-registry-products/idn/idn-policy/registration-rules/index.xhtml 上的 Verisign IDN 实践;它归结为“所有 IDN 注册都需要语言标签;

您可以在理论上找到所有但在实践中仅存在于https://www.iana.org/domains/idn-tables的大多数 IDN 表,并且您可以看到它们是每个注册表的,这表明这些额外信息实际上没有编码在域名的ASCII格式,经过Punycode算法转换后。

我试图了解谁在这里假设 IDN 表...

不应该有任何假设(无论是由注册商给出还是未给出)或不需要 IDN 表(注册局只会反向进行 Punycode 转换,并根据找到的字符决定它应该在哪个表中)。

我可以看到 EPP 事务 - 它没有使用 IDN 扩展,因此无法向服务器提供 IDN 表,即使它想要

哪个注册表?如果您是注册服务商,实际上注册管理机构应该能够帮助您并回答此类问题。请注意,大多数时候(我可以写“一直”,但我不确定是否存在反例,或者至少我现在没有想到),在 EPP 期间,domain:check您只需传递名称(以 ASCII 形式)而不任何 IDN 分机,而您在domain:create. 这也意味着domain:check可能无法为您提供正确的完整答复,因为那时并非一切都为人所知。

请参阅这些有关 IDN 扩展的 EPP 文档:

于 2020-07-14T18:29:00.733 回答