dig 命令主要用来从 DNS 域名服务器查询主机地址
首先介绍一下常见的DNS记录:
记录名 | 目的 |
A | 记录值填写空间商提供的主机IP地址 |
MX | MX记录解析是做邮箱解析使用的,记录值填写邮局商提供的服务器IP地址或别名地址 |
CNAME | 当 DNS 系统在查询CNAME左面的名称的时候,都会转向CNAME右面的名称再进行查询,一直追踪到最后的PTR或A名称,成功查询后才会做出回应,否则失败。这种记录允许您将多个名字映射到同一台计算机。与A记录不同的是,CNAME别名记录设置的可以是一个域名的描述而不一定是IP地址。通常用于同时提供WWW和MAIL服务的计算机。 |
AAAA | 用来指定主机名(或域名)对应的 IPv6 地址记录 |
NS | 域名服务器记录(域名服务器名称),如果需要把子域名交给其他 DNS 服务器解析,就需要添加 NS 记录 |
SOA | SOA 这种记录是所有区域性文件中的强制性记录。它必须是一个文件中的第一个记录。 |
TXT | 可以写任何东西,长度限制为 255。绝大多数的 TXT记录是用来做 SPF 记录(反垃圾邮件)。 |
dig mail.163.com
指定DNS服务器
dig @114.114.114.114 mail.163.com
显示简要信息
在终端中,如果简单的执行dig mai.163.com会发现显示的内容太多了,首先
dig +noall @8.8.8.8 mail.163.com
发现并没有内容输出,原因是+noall的作用,然后
dig +noall +answer @8.8.8.8 mail.163.com
输出内容为:
内容已经简要了不少了,为了复习一下管道,再加一点点缀:
dig +noall +answer @8.8.8.8 mail.163.com | awk '{print $5}'
其中awk '{print $5}'的作用是输出前面内容的第五列:
反向查询
已知IP,求它对应的域名
首先,查询163.com的MX记录:
dig 163.com MX
然后我最随便找一个域名dig一下它的IP,这里我选的是第一个:
随便找一个IP反向查询它的域名,这里我选的是第一个,注意参数是-x
这里看到查到的域名和上一张图片中的是对不上的,这是因为域名和IP相互之间的对应关系都可以是一对多的,所以查询结果也算是正确的