我正在研究使用 Nmap,有一个命令可以通过简单的 Ping 扫描来扫描网络以确定哪些主机在线。
命令如下:
1 [ignore_this]# nmap -sP 10.0.0.0/24
输出结果如下:
3 Starting Nmap 4.01 ( http://www.insecure.org/nmap/ ) at
4 2006-07-14 14:19 BST
5 Host 10.0.0.1 appears to be up.
6 MAC Address: 00:09:5B:29:FD:96 (Netgear)
7 Host 10.0.0.2 appears to be up.
8 MAC Address: 00:0F:B5:96:38:5D (Netgear)
9 Host 10.0.0.4 appears to be up.
10 Host 10.0.0.5 appears to be up.
11 MAC Address: 00:14:2A:B1:1E:2E (Elitegroup Computer System Co.)
12 Nmap finished: 256 IP addresses (4 hosts up) scanned in 5.399 seconds
我有点困惑...命令是nmap -sP 10.0.0.0/24。就我的网络(基本)知识而言,这只是一个 A 类 IP 地址,除了末尾的 /24 是子网掩码。他为什么要包含子网掩码?
抱歉,如果我的信息有点错误,并且不太了解这个主题,但我完全不知道为什么 /24 在那里。就我个人而言,我从未使用过子网,我对它不太熟悉。我对子网划分所做的最多的事情就是把它写在纸上,然后找出主机部分/网络和广播部分是什么。我从来没有在电脑上真正使用过子网划分,我甚至不知道你可以用 /24 来 ping 一个 ip 地址……
如果有人知道
- 他从哪里得到这个信息?
- 他为什么要把它包括进去...
- 更多关于其工作原理的信息...
答案1
即使 10.0.0.0 被定义为 A 类网络,您仍然可以在其中定义较小的网络。
因此,10.0.0.0/24 用于定义范围从 10.0.0.0 到 10.0.0.255 的较小网络。例如,/23 也可用于定义范围从 10.0.0.0 到 10.0.1.255 的网络,等等。
我建议您查看以下网址的 CIDR 计算器(http://www.subnet-calculator.com/cidr.php)
顺便提一下,在您的命令中,您不是在要求 NMAP ping 一个 IP...您是在要求它扫描一个定义的范围。您也可以将其指向单个 IP,但 NMAP 很可能会将其转换为 $ip/32。
答案2
Nmap 允许各种目标规范。要一次扫描多台机器,您可以使用 IP 地址列表、主机名、CIDR 表示法中的网络(如您的示例)或范围(如 )10.0.0.0-255
,这与您的示例相同。在内部,Nmap 将指定的所有目标分成单独的地址,并向每个地址发送探测。
该-sP
参数(在后续版本中重命名为,-sn
表示“跳过端口扫描”)指示 Nmap 进行主机发现,它以多种不同的方式执行此操作。如果您以 root 权限运行它,它会发送 ICMP 回显请求(“ping”)、TCP SYN 数据包到端口 443、TCP ACK 数据包到端口 80 以及 ICMP 时间戳请求。如果这些探测中的任何一个收到响应,则主机已启动。非特权扫描尝试与端口 80 和端口 443 建立 TCP 连接,寻找任何响应但超时。
对于 10.0.0.0 网络,RFC 1918 储备10.0.0.0/8(“A 类”网络)用于私人用途,但这种私人用途可能涉及对其进行子网划分或仅使用一小部分空间。实际上,很少有组织需要 /8 中的 >16M 地址,但它比 172.16.0.0/12 或 192.168.0.0/16 更容易记住地址空间,因此它在教程中被大量使用。