我非常清楚您可以为 NMap 扫描指定 IP 范围和单独的 IP。但是,我想知道是否有一个命令可以在不指定 IP 的情况下扫描我所连接的 LAN。
就上下文而言,某些 LAN 具有 192.168.0.1,其他 LAN 具有 192.168.10.1,依此类推。我正在寻找一种方法让 NMap 自动识别该因素并根据该因素运行扫描。
这可能吗?
答案1
您可以借助以下命令来完成此ip a
操作:
nmap `ip a | grep "inet " | grep -v 127.0.0.1| sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g' | cut -d" " -f2`
它获取带有子域掩码的 IP 地址并将其用作参数。nmap
如果需要,您必须添加额外的参数。
答案2
您可以使用ifconfig
和 与示例awk
脚本将格式设置为 IP/前缀。该命令类似于:
ifconfig | awk -F'[ :]' -f f
其中f
文件是:
function cnt(N){
c = 0
for(i=0; i<8; ++i) if(and(2**i, N)) ++c
return c
}
function s2p(mask) {
split(mask, v, ".")
return cnt(v[1]) + cnt(v[2]) + cnt(v[3]) + cnt(v[4])
}
/inet/ && !/127.0.0.1/ {print $3"/"s2p($6)}
这些函数只是计算网络掩码中awk
的数量1