2022-11-18 17:04:53441浏览
在视频中老师使用 nmap -sn 192.168.x.0-255 的方式进行批量扫描,但这句代码的扫描范围其实等同于另一句代码 nmap -sn 192.168.x.0/24 ,这种表示方法叫做“掩码”,学过计算机网络的同学对此可能已经了如指掌,如果你尚不清楚,可以跟着本文来学一下。
一、首先要从二进制说起
我们都知道,在计算机里面,所有的信息都是使用二进制来表示的, IP 地址自然也概莫能外。
1. IP 的二进制表示法
IPv4 是分为四组数字来表示,里面的每一个数字都是使用一个八位的二进制数来表示的,例如 192.168.0.1 :
2. 最常见的掩码表示法
通常情况下,我们看到的掩码都是一个斜杠后面跟着一个数字,例如 /24,比如我们在查看 Kali 的 IP 的时候,通常会看见这个 IP 后面有个“尾巴”:
看到这你可能已经开始在心里猜测这里和 24 的二进制表示有什么关系了——然而并没有,这里的 24 表示的是:一个与 IP 同样长度的二进制数中,从前到后有 24 个 1 !
比如说,/24 用二进制表示为:
3. 掩码的十进制表示
很明显,上面的掩码是一个二进制的数字表示,当然也是可以改写成十进制的,比如当我们查看 Windows 系统 IP 的时候会发现有个“子网掩码”的子项:
这个掩码和上面那个掩码限制的 IP 范围是一样的。
二、“掩码是如何表示 IP 范围的?
实际上,光是使用掩码并不能表示 IP 的范围,还需要由一个 IP 来提供其他信息。
1. 把掩码跟 IP 并排对齐
2. 掩码为 1 的位,对应 IP 的位不可变
3. 剩余可变位可以表示的 IP 就是一个范围
假如这个范围的“宽度”为 x,那么对应的范围就是“ 0 到 2 的 x 次方”,也就是说,如果 x 是 8 ,那么对应的范围就是 2 的 8 次方,为 256 个。
因此,192.168.0.1/24 表示这个 IP 的二进制表示法中,前 24 位不变,后八位自由组合,可以表示的范围恰好就是 192.168.0.0-255 .
四、在 nmap 命令中使用掩码
1. 通常使用 /24 足矣
要熟悉掩码的范围可能还需要一点时间,不过由于 /24 是各种家庭网关最常用的掩码配置,因此我们可以使用这个掩码来确定自己要扫描的范围:
nmap -sn 192.168.x.1/24
如前所述,其效果等同于
nmap -sn 192.168.x.0-255
2. 数字越大则范围越小
数字越大则表示被“掩盖”的位数越多,相应地,可以自由组合的位数也就越少,对应的范围就越小了。
问题反馈