我正在尝试获取已启动的 IP 列表,因此用于nmap
首先将所有 IP 保存在文本文件中:
nmap -v -sn 10.10.10.1-254 -oG hosts.txt
现在我想nmap
在这些 IP 上运行另一个命令,以便从文本文件中解析和获取 IP。我正在尝试以下方法,但它不起作用;该变量v
没有保存 IP 的值:
#!/bin/bash
while read line; do
v=$line|grep 'Up' -B1|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'
echo $v
done < hosts.txt
您的脚本似乎没有正确编写:
分配变量没有输出,因此您没有将任何内容输入到
grep
.指向
awk
您的hosts.txt
文件可能会更简单:鉴于创建的文件格式
nmap
(请原谅不同的 IP 范围;我显然在不同的网络上,但示例仍然有效):如果我们只对显示的主持人感兴趣
Status: Up
,那么神奇的词是行中的最后一个词。因此,我们awk
只查看最后一个字段等于 的行Up
,并打印第二个字段(即:IP 地址)。