精华内容
下载资源
问答
  • dns资源记录类型

    2018-11-18 21:31:00
    资源记录的定义格式: 语法:name [TTL] IN RR_TYPE value SOA: name:当前区域的名字,例如"magedu.com.",或者"2.168.192.in-addr.arpa."; value: 1.当前区域的区域名称(也可以使用主DNS服务器名称); 2.当前区域...

    资源记录的定义格式:
    语法:name [TTL] IN RR_TYPE value
    SOA:
    name:当前区域的名字,例如"magedu.com.",或者"2.168.192.in-addr.arpa.";
    value:
    1.当前区域的区域名称(也可以使用主DNS服务器名称);
    2.当前区域管理员的邮箱地址,但地址中不能使用@符号,一般使用.替代;
    3.(主从服务协商属性的定义以及否定答案的TTL)

        例如:
        magedu.com. 86400   IN SOA  magedu.com. admin.magedu.com.(
                    2018111801  ;serial,供Slave判断是否从Master获取新数据
                    2H          ;refresh time,Slave多长时间与Master进行Serial核对
                    10M         ;retry time,Slave同步失败时多长时间进行重试
                    1W          ;expire time,Slave在没有Master时提供服务的时长
                    1D          ;negative answer ttl,否定回答缓存时长
        )

    NS:
    name:当前区域的的区域名称
    value:当前区域的某DNS服务器的名字,例如ns.magedu.com;
    一个区域可以有多个NS记录
    例如
    magedu.com. 86400 IN NS NS1.magedu.com
    magedu.com 86400 IN NS NS2.magedu.com

    MX:
    name:当前区域的区域名称
    value:当前区域某邮件交换器的主机名
    一个区域可以有多个MX记录
    例如
    magedu.com IN MX 10 mx1.magedu.com
    magedu.com IN NX 20 mx2.magedu.com
    A:
    name:某FQDN,例如www.magedu.com
    value:某IPV4地址
    例如
    www.magedu.com. IN A 1.1.1.1
    AAAA:
    name:FQDN
    value:IPv6地址
    PTR:
    name:ip地址,有特定格式,IP反过来写,而且加特定后缀;例如1.2.3.4的记录写为4.3.2.1.in-addr.arpa;
    value:FQDN
    例如
    4.3.2.1.in-addr.arpa. IN PTR www.magedu.com

    CNAME:
    name:FQDN格式的别名
    value:FQDN格式的正式名称
    例如
    web.magedu.com. IN CNAME www.magedu.com

    注意:
    1.TTL可以从全局继承
    2.@表示当前区域的名称
    3.相邻的两条记录其name相同时,后面可以省略
    4.MX,NS等类型的记录value为一个FQDN,此FQDN应该有一个A记录

    转载于:https://www.cnblogs.com/feng-land/p/9979623.html

    展开全文
  • DNS资源记录与gethostbyname

    千次阅读 2012-11-15 17:44:06
    1. DNS资源记录 DNS资源记录类型主要有以下几种: A :A记录将主机名映射为IPV4地址,例如:  ns.abc.com. IN A 192.168.100.5  mail1.abc.com. IN A 192.168.100.6 AAAA :AAAA记录将主机名映射为...

    1.    DNS资源记录

    DNS资源记录类型主要有以下几种:

    A :A记录将主机名映射为IPV4地址,例如:

           ns.abc.com.             IN   A   192.168.100.5
           mail1.abc.com.       IN   A   192.168.100.6

    AAAA :AAAA记录将主机名映射为IPV6地址,格式同上。

    CNAME :CNAME记录别名与正式名称之间的对应关系,格式为:

           Alias   IN   CNAME    Canonical-hostname
    MX :
    MX记录提供了邮件路由信息,以及邮件交换器的主机名称以及相应的优先值。

    PTR : PTR记录将IP地址与主机名进行映射对应,作用正好与A记录相反。

    【注意】在Linux或者windows系统上,nslookup命令可以查看这几种类型记录。

     

    2.    gethostbyname函数的语法:

    函数的语法形式如下:

          struct hostent *gethostbyname(const char *hostname)      

          函数的主要功能是执行依次对CNAMEA记录或者AAAA记录的查询,并返回主机对应的别名、正式名、IPV4IPV6地址。函数返回类型结构定义如下:

               structhostent {

                 char *h_name;  //主机的正式名称

                 char **h_aliases;  //主机的别名列

                 int h_addrtype;  //主机的地址类型

                 int h_length; //主机的地址长度(4字节或者16字节)

                 char **h_addr_list; //主机对应的IPV4或者IPV6地址列

                 #define h_addr h_addr_list[0] //地址列表中的第一个地址

            };

          根据上面的定义,值得注意的是,对于某台主机,可能存在着多个别名以及多个AAAAA记录,即多个IP地址。

    【测试程序】

    /**************************************
      modify by dragon based on UNP code
    **************************************/
    #include <netdb.h>
    #include <stdio.h>
    #include <string.h>
    
    #define IN6ADDRSZ 16 
    #define	INT16SZ		 2
    
    
    static const char *inet_ntop4(const u_char *src, char *dst, size_t size);
    static const char *inet_ntop6(const u_char *src, char *dst, size_t size);
    static const char *inet_ntop(int af, const void *src, char *dst, size_t size);
    
    
    
    static const char *inet_ntop4(const u_char *src, char *dst, size_t size)
    {
    	static const char fmt[] = "%u.%u.%u.%u";
    	char tmp[sizeof "255.255.255.255"];
    
    	sprintf(tmp, fmt, src[0], src[1], src[2], src[3]);
    	if (strlen(tmp) > size) {
    		return NULL;
    	}
    	strcpy(dst, tmp);
    	return (dst);
    }
    
    static const char *inet_ntop6(const u_char *src, char *dst, size_t size)
    {
    	/*
    	 * Note that int32_t and int16_t need only be "at least" large enough
    	 * to contain a value of the specified size.  On some systems, like
    	 * Crays, there is no such thing as an integer variable with 16 bits.
    	 * Keep this in mind if you think this function should have been coded
    	 * to use pointer overlays.  All the world's not a VAX.
    	 */
    	char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp;
    	struct { int base, len; } best, cur;
    	u_int words[IN6ADDRSZ / INT16SZ];
    	int i;
    
    	/*
    	 * Preprocess:
    	 *	Copy the input (bytewise) array into a wordwise array.
    	 *	Find the longest run of 0x00's in src[] for :: shorthanding.
    	 */
    	memset(words, 0, sizeof words);
    	for (i = 0; i < IN6ADDRSZ; i++)
    		words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
    	best.base = -1;
    	cur.base = -1;
    	for (i = 0; i < (IN6ADDRSZ / INT16SZ); i++) {
    		if (words[i] == 0) {
    			if (cur.base == -1)
    				cur.base = i, cur.len = 1;
    			else
    				cur.len++;
    		} else {
    			if (cur.base != -1) {
    				if (best.base == -1 || cur.len > best.len)
    					best = cur;
    				cur.base = -1;
    			}
    		}
    	}
    	if (cur.base != -1) {
    		if (best.base == -1 || cur.len > best.len)
    			best = cur;
    	}
    	if (best.base != -1 && best.len < 2)
    		best.base = -1;
    
    	/*
    	 * Format the result.
    	 */
    	tp = tmp;
    	for (i = 0; i < (IN6ADDRSZ / INT16SZ); i++) {
    		/* Are we inside the best run of 0x00's? */
    		if (best.base != -1 && i >= best.base &&
    		    i < (best.base + best.len)) {
    			if (i == best.base)
    				*tp++ = ':';
    			continue;
    		}
    		/* Are we following an initial run of 0x00s or any real hex? */
    		if (i != 0)
    			*tp++ = ':';
    		/* Is this address an encapsulated IPv4? */
    		if (i == 6 && best.base == 0 &&
    		    (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) {
    			if (!inet_ntop4(src+12, tp, sizeof tmp - (tp - tmp)))
    				return (NULL);
    			tp += strlen(tp);
    			break;
    		}
    		sprintf(tp, "%x", words[i]);
    		tp += strlen(tp);
    	}
    	/* Was it a trailing run of 0x00's? */
    	if (best.base != -1 && (best.base + best.len) == (IN6ADDRSZ / INT16SZ))
    		*tp++ = ':';
    		*tp++ = '\0';
    
    	/*
    	 * Check for overflow, copy, and we're done.
    	 */
    	if ((tp - tmp) > size) {
    		return (NULL);
    	}
    	strcpy(dst, tmp);
    	return (dst);
    }
    
    
    static const char *inet_ntop(int af, const void *src, char *dst, size_t size)
    {
    	switch (af) {
    	case AF_INET:
    		return (inet_ntop4(src, dst, size));
    	case AF_INET6:
    		return (inet_ntop6(src, dst, size));
    	default:
    		return (NULL);
    	}
    	/* NOTREACHED */
    }
    
    
    int	main(int argc, char **argv)
    {
    	char			*ptr, **pptr;
    	char			str[INET6_ADDRSTRLEN];
    	struct hostent	*hptr;
    
    	while (--argc > 0) {
    		ptr = *++argv;
    		if ( (hptr = gethostbyname(ptr)) == NULL) {
    			printf("gethostbyname error for host: %s",
    					ptr);
    			continue;
    		}
    		printf("official hostname: %s\n", hptr->h_name);
    		printf("h_addrtype is %d.\n", hptr->h_addrtype);  //2---AF_INET  10---AF_INET6
    
    		for (pptr = hptr->h_aliases; *pptr != NULL; pptr++)
    			printf("\talias: %s\n", *pptr);
    
    		switch (hptr->h_addrtype) {
    		case AF_INET:
    
    #ifdef	AF_INET6
    		case AF_INET6:
    #endif
    		pptr = hptr->h_addr_list;
    		for ( ; *pptr != NULL; pptr++)
    				printf("\taddress: %s\n",
    					inet_ntop(hptr->h_addrtype, *pptr, str, sizeof(str)));
    		break;
    
    		default:
    			printf("unknown address type");
    			break;
    		}
    	}
    	return 0;
    }
    



    展开全文
  • DNS-常见资源记录定义

    2019-11-14 11:01:31
    DNS-常见资源记录定义 所有的RRs(Resource Records)都具有相同的顶级字段格式定义: NAME [TTL] CLASS TYPE VALUE NAME 字段 指示拥有资源记录DNS域名,@可用于引用当前区域的名字 TTL 字段 对大多数...

    DNS-常见资源记录定义

    所有的RRs(Resource Records)都具有相同的顶级字段格式定义:

    NAME [TTL] CLASS TYPE VALUE
    
    • NAME 字段

    指示拥有资源记录的DNS域名,@可用于引用当前区域的名字

    • TTL 字段

    对大多数资源记录,该字段为可选项。TTL可从全局继承,指明其它DNS服务器在期满放弃该记录信息|之前对其缓存多长时间。TTL值为零的资源记录不会被缓存

    • CLASS 字段

    IN(Internet类)常用,
    CS(CSNET类)、CH(CHAOS类)、HS(Hesiod)很少使用

    • TYPE字段
    主要有:
    
    SOA:Start Of Authority(起始授权记录),一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录。
    
    A:Address(地址记录) FQDN –> IPv4 32bit
    
    AAAA: FQDN –> IPv6 128bit=32bit×4
    
    PTR: PoinTeR(域名服务记录) IP –> FQDN
    
    NS: Name Server(域名服务记录),一个区域解析库可以有多个NS记录,其中一个为主的。
    
    CNAME:Canonical Name (别名记录)
    
    MX: Mail eXchanger(邮件交换器),优先级:0-99,数值越小优先级越高
    
    • VALUE

    用于描述资源的信息且长度可变的必要字段,随CLASS和TYPE的变化而变化

    SOA记录

    name:当前区域的名字
    例如“rookie.com.”或者“2.3.4.in-addr.arpa.”
    value:有多部分组成

    • (1)当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字
    • (2)当前区域管理员的邮箱地址;但地址中不能使用@ 符号,一般用. 替换,例如admin.rookie.com
    • (3)主从服务协调属性的定义以及否定答案的TTL

    例如:

    rookie.com. 86400 IN SOA rookie.com. admin.rookie.com. (
    2017052201 ; 序列号serial
    2H ; 刷新时间refresh
    10M ; 重试时间retry
    1W ; 过期时间expire
    1D ; 否定答案的TTL值negative answer ttl
    )
    

    NS记录

    name: 当前区域的名字
    value: 当前区域的某DNS 服务器的名字,例如 ns.rookie.com.

    注意:一个区域可以有多个NS 记录
    例如:

    rookie.com. IN NS ns1.rookie.com.
    rookie.com. IN NS ns2.rookie.com.
    

    注意:
    (1)相邻的两个资源记录的name相同时,后续的可省略
    (2)对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录

    MX记录

    name:当前区域的名字
    value:当前区域的某邮件交换器(smtp 服务器)的主机名

    注意:

    • 一个区域内,MX 记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高
    • 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录

    例如:

    rookie.com. IN MX 10 mx1.rookie.com.
    rookie.com. IN MX 20 mx2.rookie.com.
    

    A记录

    name:某主机的FQDN 例如www.rookie.com.
    value:主机名对应主机的IP地址

    例如:

    同一个主机有多个名字
    www.rookie.com. IN A 1.1.1.1
    web.rookie.com. IN A 1.1.1.1
    
    一个主机名有多个IP地址,负载均衡
    www.rookie.com. IN A 1.1.1.1
    www.rookie.com. IN A 2.2.2.2
    

    AAAA记录

    name: FQDN
    value: IPv6

    PTR记录

    name: IP地址,有特定格式,
    把IP 地址反过来写,1.2.3.4 ,要写作4.3.2.1 ;
    并且要加特定后缀:in-addr.arpa. ,
    所以完整写法为:4.3.2.1.in-addr.arpa.
    value: FQDN

    例如:

    4.3.2.1.in-addr.arpa. IN PTR www.rookie.com.
    
    如1.2.3为网络地址 ,可简写成:
    4 IN PTR www.rookie.com.
    

    注意:网络地址及后缀可省略;主机地址依然需要反着写

    CNAME

    name:FQDN格式的别名
    value:FQDN格式的正式名字

    例如:
    web.rookie.com. IN CNAME www.rookie.com.

    展开全文
  • DNS 学习笔记之3- 详解DNS资源记录   资源记录:  每个区域数据库文件都是由资源记录构成的。主要有:SOA记录、NS记录、A记录、CNAME记录、MX记录和PTR记录。  标准的资源记录具有其基本格式:  [name] ...
     
    
    DNS 学习笔记之3- 详解DNS的资源记录
     
    资源记录:
      每个区域数据库文件都是由资源记录构成的。主要有:SOA记录、NS记录、A记录、CNAME记录、MX记录和PTR记录。
      标准的资源记录具有其基本格式:
      [name]   [ttl]   IN  type  rdata
      name:名称字段,此字段是资源记录引用的域对象名,可以是一台单独的主机也可以是整个域。字段值:"."是根域,@是默认域,即当前域,
      ttl:生存时间字段,它以秒为单位定义该资源记录中的信息存放在DNS缓存中的时间长度。通常此字段值为空,表示采用SOA记录中的最小TTL值(即1小时)。
      IN:此字段用于将当前湖泊记录标识为一个INTERNET的DNS资源记录。
    TYPE:类型字段,用于标识当前资源记录的类型。
    资源记录类型:
    A (host),即是A记录,也称为主机记录,是DNS名称到IP地址的映射,用于正向解析。
    CNAME:CNAME记录,也是别名记录,用于定义A记录的别名。
    MX (mail exchange): 邮件交换器记录,用于告知邮件服务器进程将邮件发送到指定的另一台邮件服务器。(该服务器知道如何将邮件传送到最终目的地)。
    NS :NS记录,用于标识区域的DNS服务器,即是说负责此DNS区域的权威名称服务器,用哪一台DNS服务器来解析该区域。一个区域有可能有多条ns记录,例如zz.com有可能有一个主服务器和多个辅助服务器。
    PTR:是IP地址到DNS名称的映射,用于反向解析。
    SOA:用于一个区域的开始,SOA记录后的所有信息均是用于控制这个区域的,每个区域数据库文件都必须包谷一个SOA记录,并且必须是其中的第一个资源记录,用以标识DNS服务器管理的起始位置,SOA说明能解析这个区域的dns服务器中哪个是主服务器。
    radata: 数据字段用于指定与当前资源记录有关的数据,数据字段的内容取决于类型字段。
     
     
    资源记录类型
    一句话
    起始授权结构(SOA)
    指出当前区域内谁是  主DNS服务器
    主机(A)
    将域名FQND映射到IP  正向解析
    别名(CNAME)
    将A记录指向的域名 指向 另外一个域名
    邮件交换器(MX)
    指出当前区域内 SMTP邮件服务器IP
    名称服务器(NS)
    指出当前区域内有几个DNS服务器在提供服务
    反向解析(PRT)
    将IP解析为域名FQND 
     
     
    1. A记录 --将域名FQND映射到IP  正向解析
       在这里介绍2个特殊的域名:
    @  表示当前域,即子域为空
    *   表示泛域名与泛解析
    泛域名是指在一个域名根下,以 *.Domain.com 的形式表示这个域名根所有未建立的子域名。 泛解析是把*.Domain.com 的A 记录解析到某个IP 地址上,然后别人通过任意的前缀.domain.com访问都能访问到你解析的站点上
    例:在域名提供商只那里只解析了 www.lison.com 和 lison.com 这两个域名的A记录, 那么 ftp.lison.com mail.lison.com bbs.lison.com 等域名记录是不存在的, 但如果建立泛域名记录 *.lison.com 后, *.lison.com 就涵盖了 ftp.lison.com mail.lison.com bbs.lison.com 等所有不存在的子域名记录。
     
    2. 别名(CNAME)-- 将域名指向另一个域名
        用途:设定域名或者子域名指向,保证域名指向对应的主机重要设置;其只能填写域名。添加CNAME记录时,别名为三级或者多级域名,目标主机为别名。
    例如: www.lison.com指向ftp.lison.com
     
    3. 反向解析(PRT) -- 将A记录指向(另外的域名)
    PTR是pointer 的简写。 "PTR"就是"反向DNS",domain name pointer,可以粗略的理解为DNS反向
    Domain Name Pointer. 是一个指针记录,用于将一个IP地址映射到对应的主机名,也可以看成是A记录的反向,通过IP访问域名,原来是通过域名访问IP)
     
    MX记录详解:
        MX的作用、检查方法、邮件域名的解析,ISP提供的MX验证等。。。所有的关于MX的都在这里了哈。当然在Exchange的配置中会再次来详细分析的。
     
    检查MX记录是否存在的方法
    DNS查询的一个非常有用的工具是nslookup,可以使用它来查询DNS中的各种数据。Cmd运行nslookup进入一个交互模式,在这里能查询各种类型的DNS数据。
    C:\>nslookup
    Default Server:  ns.sc.cninfo.net
    Address:  61.139.2.69
    > set type=mx   //此句与下句功能相同
    > set q=mx
    > 126.com
    Server:  ns.sc.cninfo.net
    Address:  61.139.2.69
     
    Non-authoritative answer:
    126.com MX preference = 10, mail exchanger = mxnew-b.126.com
    126.com MX preference = 50, mail exchanger = mxbak.126.com
    126.com MX preference = 10, mail exchanger = mxnew-a.126.com
     
    mxbak.126.com   internet address = 220.181.15.194
    mxbak.126.com   internet address = 220.181.15.195
    mxnew-a.126.com internet address = 220.181.15.139
     
    如果所要查的某域名的MX记录不存在,则出现与以下类似的提示:
    C:\>nslookup
    > set type=mx
    > demo.lison.com
    Default Server: [10.11.12.16]
    Address: 10.11.12.16
     
    Non-authoritative answer:
    *** Can't find demo.magicwinmail.com: No answer
    展开全文
  •  标准的资源记录具有其基本格式:  [name] [ttl] IN type rdata  name:名称字段,此字段是资源记录引用的域对象名,可以是一台单独的主机也可以是整个域。字段值:"."是根域,@是默...
  • 最近太忙了,一直没有时间写东西,把这个DNS写完,就把这几天的调试程控交换机、Exchange的经历写出来哈。唉,国庆节来了,终于可以休息哈了。祝大家节日快乐!... 标准的资源记录具有其基本格式:  [n...
  • 主要由:SOA记录、NS记录、A记录、CNAME记录、MX记录和PTR记录标准的资源记录格式:[name] [ttl] IN type rdataname:名称字段,此字段是资源记录引用的域对象名,可以是一台单独的主机,有可...
  • 指示拥有资源记录DNS域名 TTL 对大多数资源记录,该字段为可选项。指明其它DNS服务器在期满放弃该记录信息之前对其缓存多长时间。TTL值为零的资源记录不会被缓存 ...
  • DNS消息格式

    2018-07-17 22:36:14
    DNS消息格式DNS消息格式分为5段分别是 Header Question(查询nameserver的问题) Answer(回答问题的资源记录) Authority(指向权威的资源记录) Additional(附加信息的资源记录) 其中header是首部...
  • 指示拥有资源记录DNS域名 TTL 对大多数资源记录,该字段为可选项。指明其它DNS服务器在期满放弃该记录信息之前对其缓存多长时间。TTL值为零的资源记录不会被缓存 CLASS
  • DNS报文格式解析

    2021-04-02 11:15:18
    整个 DNS 格式主要分为 3 部分内容,即基础结构部分、问题部分、资源记录部分。下面将详细地介绍每部分的内容及含义。 基础结构部分 DNS 报文的基础结构部分指的是报文首部,如图所示。 该部分中每个字段含义...
  • DNS报文格式

    2015-06-10 16:51:04
    DNS报文格式(借个图贴过来): ...除此之外,回答、授权和额外信息部分是只出现在DNS应答报文中的,而这三部分又都采用资源记录(Recource Record)的相同格式,这个稍后会提到。下面逐个字段地分析DNS报文。
  • 1. 域名系统概述,2. DNS报文格式,3. DNS报文问题部分的格式,4. DNS报文资源记录格式,5. IPv6下DNS报文格式的扩展,6. BIND简介
  • DNS学习笔记2--DNS记录

    2020-06-28 23:31:46
    整个 DNS 格式主要分为 3 部分内容,即基础结构部分、问题部分、资源记录部分。DNS 报文的基础结构部分指的是报文首部。 字段名称 内容描述 事务ID DNS 报文的 ID 标识。对于请求报文和其对应的应答报文,该...
  • DNS报文格式解析(非常详细)

    千次阅读 2020-11-20 18:27:04
    原文地址: ... DNS 分为查询请求和查询响应,请求和响应的报文结构基本...整个 DNS 格式主要分为 3 部分内容,即基础结构部分、问题部分、资源记录部分。下面将详细地介绍每部分的内容及含义。 基础结构部分 DN..
  • DNS 报文格式

    千次阅读 2012-05-14 19:23:28
    一、域名和资源记录的定义 1、Name space definitions 2、资源记录定义(RR definitions)  2.1 格式  后面分析报文的时候详细解释。  2.2 类型值(TYPE values)  类型主要用在资源记录中,注意下面的值是...
  • 从网上各处找的资料,各取所长,再加上从老师给的程序中学的,整理个还算完备的吧。  DNS报文格式(借个图贴过来):...除此之外,回答、授权和额外信息部分是只出现在DNS应答报文中的,而这三部分又都采用资源记录
  • DNS篇之二DNS记录类型

    2014-07-22 14:31:47
    数据库中的,每一个条目称作一个资源记录(Resource Record, RR)资源记录格式:第一段 第二个字段 第三个字段 第四个字段(资源记录类型) 第五个字段NAME TTL IN(internet) ...
  • 总结:DNS报文格式

    千次阅读 2010-03-03 20:45:00
    DNS报文格式(借个图贴过来): 说明...除此之外,回答、授权和额外信息部分是只出现在DNS应答报文中的,而这三部分又都采用资源记录(Recource Record)的相同格式,这个稍后会提到。下面逐个字段地分析DNS报文。 
  • DNS报文格式(借个图贴过来): ...除此之外,回答、授权和额外信息部分是只出现在DNS应答报文中的,而这三部分又都采用资源记录(Recource Record)的相同格式,这个稍后会提到。下面逐个字段地分析DNS报文。

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 278
精华内容 111
关键字:

dns资源记录格式