C# DNS区域文件的有效字符是什么?如何清理用户输入?
我正在开发一个接口,允许我们的客户自己更新他们的DNS 我有两个问题:C# DNS区域文件的有效字符是什么?如何清理用户输入?,c#,dns,bind,C#,Dns,Bind,我正在开发一个接口,允许我们的客户自己更新他们的DNS 我有两个问题: 什么构成有效的主机和目标记录?(A、CNAME、MX、TXT)即,如果用户输入。。。。。。。。对于主机和目标,DNS服务器不会这样做 是否有可以用来清理用户输入的正则表达式 顺便说一句,这是BIND9 DNS和C#web应用程序 谢谢 Kyle从技术上讲,域名标签可以包含任何八位字节值,但通常它们只包含字母数字、连字符和下划线字符 这来自以下第2.3.1节中的建议: 标签必须遵循以下规则: ARPANET主机名。他们必须开始
SRV
记录的标签部分
如果要让用户创建自己的子域,还可以允许使用“
”字符
可能的值包括:
记录-必须是虚线四元IP地址A
记录-必须是其他合法标签CNAME
record-16位整数优先级字段和合法主机名。注意:有些人在标签上自己只指向MX
记录。这是不赞成的CNAME
录制-您喜欢的任何内容李>TXT
请注意,在每种情况下,如果您允许任何不在正常集合中的字符,则如果它们存储在绑定格式区域文件中,则需要对其进行转义。不要忘记AAAA、IPv6地址(请记住,在IPv4地址用完之前只剩下两年了…)
有关法定名称,请参阅RFC 1123第2.1节域名可以是任何东西,主机名的语法要严格得多(参见RFC 1123)。答案过去很简单,但现在不是了 您几乎可以使用任何Unicode字符,但它们应该经过规范化,并且 编码过程 参见RFC 3490(IDNA)、RFC 3454(Stringprep)、RFC 3491(Nameprep)、RFC 3492(Punycode)
或者使用Wikipedia了解全局()。除了上面的建议,如果任何人在将区域文件从godaddy导入route53时仍面临问题,请删除注释。我花了几个小时才发现,写为“此处注释行”的注释导致route 53系统无法正确解析区域文件。RFC 1035中的规则已由RFC 1123更新。以数字开头现在是完全正常的。某些字符需要在TXT记录的值中引用…@JohnHascall仅以主文件格式-RDATA本身可以包含任何正确的内容。问题是关于文件格式,而不是wire-format.Re清理用户输入-查看本文:我们仍然可以获得ipv4地址