如何让终端重复使用不同的IP?

如何让终端重复使用不同的IP?

是否可以让终端重复nslookup192.168.1.2开始192.168.1.20,查看网络中的所有计算机,而无需进入服务器。这可能吗?

答案1

nslookup本身不支持 CIDR 表示法、范围或通配符,因此最好的选择可能是一个简单的 bash 循环。

for ip in 192.168.1.{2..20}; do nslookup $ip; done

答案2

dfarrell07 的答案以一般的方式解决了这个问题,而不是依赖于nslookup- 我认为这是正确的方法。

但是为了多样性和 shell 语法示例,这里是另一种方法,与域名查找更相关:

查找程序可以被指示一次处理所有地址;这对于 来说似乎有些棘手nslookup(可能需要使用expect),因此我将改用dig

有一个选项-x用于dig进行反向查找。该选项仅接受一个地址,因此仅列出它们是行不通的。但命令行上可以有多个查询,因此可以重复使用该选项。

我们不能使用192.168.1.{2..20}来表示地址列表,因为我们需要-x在每个地址前面加上 。使用会在地址前面'-x 192.168.1.'{2..20}放置—— 但不是作为单独的命令行参数 ——会得到一个参数,而它应该看到和。我将使用子 shell 扩展作为分离单词的变通方法 —— 但我相信有更简洁的方法可以做到这一点。 -xdig-x 192.168.1.2-x192.168.1.2

此命令应列出您想要的主机名:

dig +noall +answer $(echo '-x 192.168.1'{2..20})

显示类似

$ dig +noall +answer $(echo '-x 193.99.144.'{80..83})  
80.144.99.193.in-addr.arpa. 20800 IN    PTR     redirector.heise.de.
81.144.99.193.in-addr.arpa. 20134 IN    PTR     www.ix-konferenz.de.
83.144.99.193.in-addr.arpa. 21599 IN    PTR     limesurvey.heise.de.



关于单独的命令行参数:您可以尝试以下命令,它们将显示相同的输出,但在第一个命令中,echo前面的获得 11 个参数,每个参数-x和 IP 地址都是单独的,而在第二个命令中,仅echo获得 7 个参数:

$ echo dig +noall +answer $(echo '-x 193.99.144.'{80..83})
dig +noall +answer -x 193.99.144.80 -x 193.99.144.81 -x 193.99.144.82 -x 193.99.144.83
$ echo dig +noall +answer '-x 193.99.144.'{80..83} 
dig +noall +answer -x 193.99.144.80 -x 193.99.144.81 -x 193.99.144.82 -x 193.99.144.83

相关内容