Алгоритм кодировки IP-адреса 

  1. Перевести 32-битное число в двоичную систему счисленияx
  2. Разбить получившееся число на группы из 8 двоичныхy разрядов
  3. Записать каждую группу в десятичной системе счисления

Алгоритм нахождения адреса сети по маске

  1. записываем числа IP-адреса и маски в двоичной системеy счисления
  2. для нужных битов адреса сети составляем столбик для поразрядной конъюнкции вида 
  3. совершаем поразрядную конъюнкцию для 8 бит, если не хватает – дописываем незначащие нули
  4. отвечаем на поставленный вопрос

Алгоритм нахождения маски по адресу сети

  1. записываем числа IP-адреса и адреса сети в двоичной системеyсчисления
  2. для нужных битов маски составляем столбик для поразрядной конъюнкции вида 

    где маску мы заменяем на восемь знаков «*»
  3. далее, в маску слева – направо записываем единицы до крайней правой единицы в адресе сети, например, если адрес сети = 10010010 (должно быть ровно 8 бит, если не хватает – добавляем незначащие нули), тогда маска будет 11111110
  4. отвечаем на поставленный вопрос

Алгоритм нахождения IP-адресов, сумма единиц/нулей в которых чётна/нечётна

  1. Переводим в двоичный вид IP-адрес и маску в уникальном разряде, где маска не равна 0 или 255
  2. Формируем IP-адреса: биты IP-адреса, у которыa в маске стоят единицы – переписываем, а биты, у которыa в маске стоят нули – заменяем «звёздочками»
  3. Считаем количество всех возможных комбинаций по формуле 2n, где n – количество «звездочек», и делим его на 2
  4. Записываем полученный ответ

Шаблон решения на Python. Сумма единиц кратна числу

from ipaddress import * 
k = 0 
net = ip_network(‘<адрес сети> / <маска>’) 
for ip in net:
  if bin(int(ip))[2:].count(‘1’) % <из условия> == 0:
       k += 1 
print(k)

Прототипы с ЕГЭ

Задача №1 В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес, – в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда – нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.
Для узла с IP-адресом 111.81.208.27 адрес сети равен 111.81.192.0. Чему равно наименьшее возможное значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

Ответ: 192

Задача №2 В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес, – в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда – нули.
Адрес сети получается в результате применения поразрядной конъюнкции к заданным IP-адресу узла и маске. Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.
Для узла с IP-адресом 119.83.208.27 адрес сети равен 119.83.192.0. Каково наименьшее возможное количество единиц в разрядах маски?

Ответ: 18

Задача №3 В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.
Сеть задана IP-адресом 192.168.32.160 и маской сети 255.255.255.240. Сколько в этой сети IP-адресов, для которых сумма единиц в двоичной записи IP-адреса чётна? В ответе укажите только число.

Ответ: 8

Задача №4 В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.
Сеть задана IP-адресом 105.224.200.224 и сетевой маской 255.255.255.224. Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса кратно 4? В ответе укажите только число.

Ответ: 10

Задания уровня ЕГЭ

Задача №1 В терминологии сетей TCP/IP маска сети – это двоичное число, меньшее 232; в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места нули. Маска определяет, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес – в виде четырёх байт, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Для узла с IP-адресом 156.133.216.35 адрес сети равен 156.133.216.0. Чему равно наибольшее количество возможных адресов в этой сети?

Ответ: 2048

Задача №2 В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Два узла, находящиеся в разных подсетях, имеют IP-адреса 10.96.180.231 и 10.96.140.118. В масках обеих подсетей одинаковое количество единиц.
Найдите наибольшее возможное количество нулей в двоичной записи маски подсети.

Ответ: 13

Задача №3 В терминологии сетей TCP/IP маска сети – это двоичное число, меньшее 232; в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места нули. Маска определяет, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес – в виде четырёх байт, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Например, если IP-адрес узла равен 131.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 131.32.240.0.
Если маска подсети 255.255.255.248 и IP-адрес компьютера в сети 156.128.0.227, то номер компьютера в сети равен?

Ответ: 3

Задача №4 В терминологии сетей TCP/IP маска сети – это двоичное число, меньшее 232; в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места нули. Маска определяет, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес – в виде четырёх байт, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Например, если IP-адрес узла равен 131.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 131.32.240.0.
В двух подсетях используются одинаковые маски. Известно, что два узла, находящиеся в первой подсети, имеют IP-адреса – 167.77.194.47 и 167.77.194.37, и один узел из второй сети имеет IP-адрес 167.77.200.25.
Сколько существует масок, при которых соблюдается условие задачи?

Ответ: 7

Задача №5 В терминологии сетей TCP/IP маска сети – это двоичное число, меньшее 232; в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места нули. Маска определяет, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети.
Обычно маска записывается по тем же правилам, что и IP-адрес – в виде четырёх байт, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Например, если IP-адрес узла равен 131.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 131.32.240.0.
Для узла с IP-адресом 203.75.227.102 адрес сети равен 203.75.224.0. Для скольких значений третьего слева байта маски допустим такой адрес сети?

Ответ: 4

Задача №6 В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети.
Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Адрес сети равен 183.192.A.0, где А — некоторое допустимое для записи адреса сети число, а маска сети 255.255.252.0.
Определите минимальное значение А, для которого для всех IP-адресов этой сети в двоичной записи IP-адреса суммарное количество единиц в правых двух байтах больше трёх.

Ответ: 60