本文目录导读:

host 命令是一个用于执行 DNS 查询的实用工具,它可以将域名解析为 IP 地址,或者将 IP 地址反向解析为域名。
它的基本工作原理是:向系统配置的 DNS 服务器发送查询请求,然后显示服务器返回的响应结果。
以下是使用 host 命令解析域名 IP 地址的详细方法和示例:
基本语法
host [选项] 域名 [DNS服务器]
核心用法:直接查询 A 记录(IPv4 地址)
这是最常用的方式,直接在命令行输入 host 后跟域名,系统会自动查询该域名对应的 IPv4 地址。
示例:
host www.example.com
输出示例:
www.example.com has address 93.184.216.34
www.example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946
解读:
has address后面的184.216.34就是该域名对应的 IPv4 地址(A记录)。has IPv6 address后面的是对应的 IPv6 地址(AAAA记录)。
指定查询类型(记录类型)
你可以通过 -t 选项指定要查询的具体 DNS 记录类型。
查询 IPv4 地址(A 记录):
host -t A www.example.com
查询 IPv6 地址(AAAA 记录):
host -t AAAA www.example.com
查询邮件交换记录(MX 记录):
host -t MX gmail.com
输出示例:
gmail.com mail is handled by 10 alt1.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 5 gmail-smtp-in.l.google.com.
...
查询权威域名服务器(NS 记录):
host -t NS example.com
查询别名(CNAME 记录):
host -t CNAME www.github.com
反向解析(根据 IP 地址查域名)
使用 host 命令也可以从 IP 地址反向查找对应的域名(PTR记录)。
示例:
host 8.8.8.8
输出示例:
8.8.8.in-addr.arpa domain name pointer dns.google.
解读: 这表明 IP 8.8.8 的域名是 dns.google。
指定 DNS 服务器
默认情况下,host 命令会使用你的系统配置的 DNS 服务器(如 /etc/resolv.conf 中的设置),你也可以直接在命令末尾指定一个自定义的 DNS 服务器。
这在对特定DNS服务器进行测试时非常有用。
示例: 使用 Google 的公共 DNS (8.8.8.8) 来查询域名。
host www.example.com 8.8.8.8
| 选项 | 用途 |
|---|---|
-t TYPE |
指定查询的 DNS 记录类型(如 A、AAAA、MX、NS、CNAME、TXT 等)。 |
-a 或 -v |
显示更详细的查询结果(等同于 -t ANY 的详细模式)。 |
-l |
列出指定域名的所有 DNS 记录(需要该域名允许区域传输,通常不开放)。 |
-i |
进行反向 IP 解析(查找 IP 的域名)。 |
-W |
设置等待响应的时间(秒)。 |
host 命令解析域名 IP 地址的核心步骤非常简单:
- 打开终端。
- 输入命令:
host 你要查询的域名。 - 查看结果:找到
has address这一行,后面的就是 IPv4 地址。
如果需要查询特定的记录类型或使用特定的 DNS 服务器,只需按照上面介绍的选项添加即可,它是网络故障排查和 DNS 查询中最直接、最清晰的命令之一。