手机版 收藏 导航

在 Linux 上如何快速查找多个域名对应的 IP 地址列表

原创   www.link114.cn   2024-08-24 18:40:42

在 Linux 上如何快速查找多个域名对应的 IP 地址列表

有没有遇到过这样的情况:老板突然找,说最近网站访问速度慢,让你赶紧查找域名对应的IP地址,看看是不是服务器问题。一看域名列表,一个接一个地挨个ping,头都大,这也太费时间吧!

别担心,我来教一招"老司机"才会的秘籍,教用Linux轻松搞定这个问题。相信看完这篇文章,以后再遇到这种情况,一定会脸上挂着"看我多厉害"的自信微笑,赶紧给老板展现高超的Linux技能。

让一起回顾一下人类发现火之前的生活:漫天乌云,狂风呼啸,终于看见一缕火光,哇哦,这也太神奇吧!从此以后人类的生活发生翻天覆地的变化,可以烧火取暖,做饭,照明等等。说,你是当时的人类,看到火的第一反应会是什么?我打赌,肯定会先摸一摸,小心翼翼地试着点燃它,看看能不能驯服它。

同样的,你是第一次接触Linux,面对一堆命令行指令,也可能会感到手足无措,不知所措。但是相信我,只要掌握几个常用命令,Linux就会像驯服的火一样,任摆布。

让开始学习这个快速查找域名IP地址的技能吧。需要打开最喜欢的Linux终端,输入这个命令:

```

cat domain.txt | xargs -n 1 -I {} sh -c 'echo -n "{} "; dig +short {}'

```

这个命令做什么呢?

1. `cat domain.txt`是读取一个叫`domain.txt`的文件,里面存放着要查询的域名列表。

2. `|`是管道符,把上一步的输出作为下一步的输入。

3. `xargs -n 1 -I {}`是一个神奇的命令,它会把输入的每一行域名,分别传给后面的命令执行。

4. `sh -c 'echo -n "{} "; dig +short {}'是实际执行的命令,它会先输出域名,使用`dig`命令查找该域名的IP地址,并显示出来。

是不是很简单?只需要一行命令,就可以快速查找多个域名的IP地址。要是以前用手动一个个ping,那真是太麻烦。

不过,觉得上面的命令太长,记不住也不好理解,那我再教一个更简单的方法:

```

for domain in $(cat domain.txt); do echo -n "$domain "; dig +short $domain; done

```

这个命令和上面的效果是一样的,只不过使用`for`循环的方式,更加直观易懂。

对了,还想更进一步,比如想把结果保存到一个文件里,那可以这样做:

```

cat domain.txt | xargs -n 1 -I {} sh -c 'echo -n "{} "; dig +short {}' >> result.txt

``` 或者: ```

for domain in $(cat domain.txt); do echo -n "$domain "; dig +short $domain; done >> result.txt

```

是不是超级简单?以后再遇到这种情况,就可以摆出一副"小case而已"的表情,轻松帮老板解决问题。

不过,我还有一个小建议,就是如果你的域名列表很多,比如上百个,那么直接执行上面的命令可能会让你的终端卡顿,甚至宕机。这时候可以考虑把命令拆分成几个批次执行,比如:

```

cat domain.txt | xargs -n 20 -I {} sh -c 'echo -n "{} "; dig +short {}' >> result.txt

```

这样每次只处理20个域名,就不会让系统负载过高。当然,也可以根据自己的机器性能,调整一下每批次的域名数量。

相信通过这篇文章的介绍,已经掌握在Linux上快速查找多个域名IP地址的绝技。以后再遇到老板急着要这种信息时,一定可以游刃有余地完成任务,甚至还能顺带给老板展示一下你的Linux技能,让他对刮目相看。相信一定会成为公司里最受欢迎的"Linux大神"!