Сеть в вашей команде находится в 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.
Есть ли кто-нибудь, кто мог бы помочь мне, или мой вопрос настолько затуманен ????? – user2804038
Нет такой вещи, как глупый вопрос, люди здесь, чтобы помочь :) – chainwork