2013-11-11 5 views
2

Когда я использую эту команду, которая IP addresed сканируютсяКак найти IP-адрес диапазона

# nmap -sP 192.168.0.120/25 

пожалуйста, вы можете помочь мне, как получить диапазон IP, когда у меня есть и подсеть Адресная. Потому что я пытаюсь понять это, но никакого результата до сих пор .. Спасибо заранее

+0

Есть ли кто-нибудь, кто мог бы помочь мне, или мой вопрос настолько затуманен ????? – user2804038

+0

Нет такой вещи, как глупый вопрос, люди здесь, чтобы помочь :) – chainwork

ответ

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.