使用 NMap 扫描 LAN,无需指定 LAN IP

使用 NMap 扫描 LAN,无需指定 LAN IP

我非常清楚您可以为 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

相关内容