如何查找IP地址范围

3
当我使用这个命令时,会扫描哪些IP地址?
# nmap -sP 192.168.0.120/25

您好!当我有地址和子网掩码时,希望您能帮我找到IP范围。因为我一直在尝试理解这个问题,但到目前为止还没有结果...非常感谢您的帮助。


有人可以帮我吗,还是我的问题太愚蠢了???? - user2804038
没有所谓的愚蠢问题,大家都在这里帮助你 :) - chainwork
2个回答

5

您输入的网络地址采用了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。


-1
你用文本绘图把它弄得太复杂了。这是答案: 网络地址为192.168.0.0 第一个子网为192.168.0.1 最后一个子网为192.168.0.254

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接