当我使用此命令扫描IP addresed时
# nmap -sP 192.168.0.120/25
如果我有地址和子网,请帮助我了解如何获取IP范围。因为我试图理解这一点,但直到现在都没有结果......提前谢谢
答案 0 :(得分:3)
命令中的网络采用CIDR表示法。第一部分(在/
之前)定义了哪个网络,第二部分定义了网络掩码的设置位数。 IPv4地址是4字节或32位信息。 /25
表示该地址的25位用于表示网络,32 - 25 = 7
位用于寻址网络上的主机。 /25
网络可以容纳2^7 = 128
个主机,而不是网络和广播地址。要获取网络地址(地址块的开头),请使用给定的地址和按位 - 并使用2^32 - 2^7
。在这种情况下(使用Python):
>>> # Get the integer value of the address
>>> import struct
>>> ip = struct.unpack(">I", struct.pack("4B", 192, 168, 0, 120))[0]
>>> bin(ip)
'0b11000000101010000000000001111000'
>>> # Bitwise-and with the netmask
>>> net = ip & (2**32 - 2**7)
>>> bin(net)
'0b11000000101010000000000000000000'
>>> # Convert back to dotted-decimal
>>> struct.unpack("4B", struct.pack(">I", net))
(192, 168, 0, 0)
因此,网络地址为192.168.0.0
,您有128个地址,因此您的目标范围是192.168.0.0 - 192.168.0.127。