Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DNS区域文件的有效字符是什么?如何清理用户输入?_C#_Dns_Bind - Fatal编程技术网

C# DNS区域文件的有效字符是什么?如何清理用户输入?

C# DNS区域文件的有效字符是什么?如何清理用户输入?,c#,dns,bind,C#,Dns,Bind,我正在开发一个接口,允许我们的客户自己更新他们的DNS 我有两个问题: 什么构成有效的主机和目标记录?(A、CNAME、MX、TXT)即,如果用户输入。。。。。。。。对于主机和目标,DNS服务器不会这样做 是否有可以用来清理用户输入的正则表达式 顺便说一句,这是BIND9 DNS和C#web应用程序 谢谢 Kyle从技术上讲,域名标签可以包含任何八位字节值,但通常它们只包含字母数字、连字符和下划线字符 这来自以下第2.3.1节中的建议: 标签必须遵循以下规则: ARPANET主机名。他们必须开始

我正在开发一个接口,允许我们的客户自己更新他们的DNS

我有两个问题:

  • 什么构成有效的主机和目标记录?(A、CNAME、MX、TXT)即,如果用户输入。。。。。。。。对于主机和目标,DNS服务器不会这样做
  • 是否有可以用来清理用户输入的正则表达式
  • 顺便说一句,这是BIND9 DNS和C#web应用程序

    谢谢

    Kyle

    从技术上讲,域名标签可以包含任何八位字节值,但通常它们只包含字母数字、连字符和下划线字符

    这来自以下第2.3.1节中的建议:

    标签必须遵循以下规则: ARPANET主机名。他们必须开始 以字母结尾,以字母或 数字,并具有作为内部字符的 只有字母、数字和连字符。 在这方面也有一些限制 长度。标签必须是63 字符或更少

    下划线字符是最近添加的,通常用于
    SRV
    记录的标签部分

    如果要让用户创建自己的子域,还可以允许使用“
    ”字符

    可能的值包括:

    • A
      记录-必须是虚线四元IP地址
    • CNAME
      记录-必须是其他合法标签
    • MX
      record-16位整数优先级字段和合法主机名。注意:有些人在标签上自己只指向
      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地址