Contents

Linux命令将域名转换为IP

1. 概述

在本教程中,我们将讨论如何将域名解析或转换为 IP 地址。为此,我们将使用以下命令:pinghostnslookupdignmap

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。