我知道我可以通过执行类似的操作来 ping 扫描我的 LAN,nmap -sP 192.168.0.0/24
这样就可以了。
我想知道是否有办法nmap
使用我的 LAN IP 和网络掩码自行确定本地子网的范围,而无需我指定 IP 范围。
NMAP 有这样的功能吗?
如果没有的话,可以使用 Linux 上的 bash 行来实现吗?
答案1
ip route
可能是获取此信息的最简单方法,并且在大多数情况下是正确的。
root@myhost:~# ip route
default via 192.168.2.1 dev eth1
192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.30
这是一个不太优雅且可能需要更多工作的 shell 命令,它将192.168.2.0/24
从上面提取 that。它将提取上面的内容并将其放入 shell 变量中$MY_SUBNET_WITH_CIDR
DEFAULT_ROUTE_IFACE=`ip route | grep default | cut -f 5 -d " "`; \
MY_SUBNET_WITH_CIDR=`ip route | tail -n -1 | grep $DEFAULT_ROUTE_IFACE | cut -f 1 -d " "`
当然,如果您的默认网关是由电缆调制解调器或家庭宽带提供商提供的,您将尝试进入nmap
属于他们的网络,这可能看起来很有敌意,所以要小心。