Linux命令将域名转换为IP
1. 概述
在本教程中,我们将讨论如何将域名解析或转换为 IP 地址。为此,我们将使用以下命令:ping、host、nslookup、dig和nmap。
2. 使用ping 命令
ping 实用程序用于通过 ICMP 回显请求数据包测试主机的可达性。
它预装在许多 Linux 发行版上,但如果它没有预装在我们的 Linux 发行版上,我们可以安装它。我们可以使用apt 或 yum 在 Ubuntu/Debian 或 RHEL 上安装iputils-ping。
让我们通过 ping 域名将域名解析为 IP 地址:
$ ping blogdemo.com
PING blogdemo.com (104.26.13.74) 56(84) bytes of data.
64 bytes from 104.26.13.74 (104.26.13.74): icmp_seq=1 ttl=32 time=11.1 ms
我们 ping 域blogdemo.com时,它回复的 IP 地址为 10.26.13.74,这是域blogdemo.com的 A 记录。
3. 使用host
host 命令是一个 DNS 查找实用程序,用于将域名转换为 IP 地址和反向 IP 查找。
该命令预装在许多 Linux 发行版中,但如果它在我们的系统上不可用,我们可以安装它。我们可以使用apt 或 yum 在 Ubuntu/Debian 上安装dnsutils或在 RHEL 上安装bind-utils。
让我们使用host命令并检查输出:
$ host blogdemo.com
blogdemo.com has address 104.26.12.74
blogdemo.com has address 104.26.13.74
blogdemo.com has address 172.67.72.45
blogdemo.com has IPv6 address 2606:4700:20::ac43:482d
blogdemo.com has IPv6 address 2606:4700:20::681a:c4a
blogdemo.com has IPv6 address 2606:4700:20::681a:d4a
这将打印出所有 DNS 记录,如 A、AAAA、MX 和其他记录。但在这种情况下,我们可能想要检查 IPv4 地址。 让我们添加一种要打印的记录:
$ host -t a blogdemo.com
blogdemo.com has address 172.67.72.45
blogdemo.com has address 104.26.12.74
blogdemo.com has address 104.26.13.74
在上面的命令中,*-t *选项指定要查找的记录类型。在我们的例子中,它是域名的 A 记录。
4. 使用nslookup 命令
我们将要查看的另一个命令**是用于查询互联网域名的nslookup **命令。此命令提供与主机命令类似的功能。
默认情况下,nslookup命令预装在一些 Linux 发行版中,但我们可以将它安装在我们的系统上。该命令是我们在上面的host命令中安装的 DNSUtil 或 Bind-Utils 包的一部分。它有两种模式,称为交互模式和非交互模式。 让我们打开我们的终端并输入带有域名的nslookup 。
这将是一个非交互模式:
$ nslookup blogdemo.com
Name: blogdemo.com
Address: 172.67.72.45
Name: blogdemo.com
Address: 104.26.12.74
Name: blogdemo.com
Address: 104.26.13.74
默认情况下,非交互模式将同时查找 IPv4 和 IPv6。nslookup的交互模式允许我们更改我们正在寻找的 DNS 记录的类型,例如 A、AAA、MX、CNAME 等。
在交互模式下使用nslookup是类似的:
itcodingman@blogdemo:~$ nslookup
> set type=A
> blogdemo.com
Server: 17.31.0.2
Address: 17.31.0.2#53
Non-authoritative answer:
Name: blogdemo.com
Address: 10.26.13.74
Name: blogdemo.com
Address: 17.67.72.45
Name: blogdemo.com
Address: 10.26.12.74
从上面的命令中,From type=A,我们可以更改我们正在寻找的 DNS 记录,例如 MX、CNAME 等。
5. 使用dig命令
dig 命令与nslookup命令的工作方式类似,但功能更多。dig命令预装在一些 Linux 发行版中,但如果它在我们的 Linux 系统上不可用,我们可以安装它。
它可以通过我们上面看到的 DNSUtil 或 Bind-Utils 包获得。
我们可以使用dig查询我们想要的任何类型的 DNS 记录。但是这样做,我们会将域名转换为 IP。让我们检查一下域名的A记录:
itcodingman@blogdemo:~$ dig blogdemo.com A +short
104.26.13.74
172.67.72.45
104.26.12.74
从上面的命令中,A 记录是 IPv4 地址,而 +short 表示得到一个简短的答案而不显示 Header。寻找域名的 AAAA 记录,这是一个带有dig的 IPv6 :
itcodingman@blogdemo:~$ dig blogdemo.com AAAA +short
2606:4700:20::681a:c4a
2606:4700:20::681a:d4a
2606:4700:20::ac43:482d
如您所见,我们还可以检查域名的 IPv6 地址。
6. 使用Nmap
Nmap 代表Network Mapper,是一种用于安全审计和扫描大型网络的工具。
我们可以使用apt 或 yum 在 Ubuntu/Debian 和 RHEL 上安装nmap。
让我们看一下使用 ping 扫描选项的主机发现:
$ nmap -sn blogdemo.com
Starting Nmap 7.80 ( https://nmap.org ) at 2021-08-11 13:51 WAT
Nmap scan report for blogdemo.com (104.26.12.74)
Host is up (0.25s latency).
Other addresses for blogdemo.com (not scanned): 10.26.13.74 172.67.72.45 2606:4700:20::681a:c4a 2606:4700:20::681a:d4a 2606:4700:20::ac43:482d
Nmap done: 1 IP address (1 host up) scanned in 1.76 seconds
**首先,-sn 选项指示nmap进行 ping 扫描并禁用端口扫描。**我们使用此选项是因为我们只对域名翻译感兴趣。最后,上面nmap的输出显示了域的 IP 地址和与域关联的其他 IP。