Как интерпретировать блок IP-адреса?

Если у меня есть блок частных IP-адресов, таких как 171.58.0.0/12, означает ли это, что я по существу побитовый И 32-битная версия 171.58.0.0 с 32 битами из 1, последние 12 из которых являются 0-из получить самый длинный префикс приемлемых частных IP-адресов в этом диапазоне?

10101011.00111010.00000000.00000000 (171.58.0.0) AND
11111111.11111111.11110000.00000000 (12 bit mask?)

=

10101011.00111010.00000000.00000000 (Longest Prefix of Private IP addresses)

получить префикс приемлемых частных IP-адресов?

Спасибо!

4 ответа

Решение

Вы создаете 32-битное число, для которого старшие 12 бит установлены в единицу, а затем И на заданный IP-адрес, и вы получаете сетевой адрес. Остальные биты доступны для адресов хоста, за исключением зарезервированных номеров всех нулей (сам сетевой адрес) и всех единиц (широковещательный адрес). В вашем случае это будет:

171.58.0.0 = network
171.58.0.1 to 171.58.15.254 = hosts
171.58.15.255 = broadcast

РЕДАКТИРОВАТЬ. Смотрите ответ Тони ван дер Пита, так как он добавляет ценную информацию к моему ответу.

@Konamiman - ваш ответ в значительной степени соответствует (+1), но я не мог не ответить из-за странных вещей в вопросе.

Прежде всего, я хотел бы подчеркнуть, что OP получил инвертированные 12 битов, /12 означает 12 битов 1 слева, а не 12 битов нулей справа.

Во-вторых, 171.58.0.0/12 в двоичном виде - 10101011.00111010.00000000.00000000 (в качестве состояний OP) с маской 11111111.11110000.00000000.00000000, что означает, что в части адреса узла есть ненулевые биты. Насколько я знаю, это не способ выразить блок адресов, даже если это допустимый единственный адрес в этой подсети.

Более разумно, вы бы выразили это как 171.48.0.0/12 (это опечатка в вопросе?), Что означает, что часть узла - все нули. Наименьшая действительная маска для сети 171.58.0.0 будет равна /15.

РЕДАКТИРОВАТЬ: посмотрите на это руководство по IP-адресации. Это немного устарело, поскольку относится к классам A, B, C, но является полезной шпаргалкой для сетевых масок.

Предполагая, что это основано на CIDR, может быть

Mask:255.240.0.0     Host/Net - 1048574
Network          Broadcast
171.48.0.0       171.63.255.255
Другие вопросы по тегам