Алгоритм кодировки IP-адреса
- Перевести 32-битное число в двоичную систему счисленияx
- Разбить получившееся число на группы из 8 двоичныхy разрядов
- Записать каждую группу в десятичной системе счисления
Алгоритм нахождения адреса сети по маске
- записываем числа IP-адреса и маски в двоичной системеy счисления
- для нужных битов адреса сети составляем столбик для поразрядной конъюнкции вида
- совершаем поразрядную конъюнкцию для 8 бит, если не хватает – дописываем незначащие нули
- отвечаем на поставленный вопрос
Алгоритм нахождения маски по адресу сети
- записываем числа IP-адреса и адреса сети в двоичной системеyсчисления
- для нужных битов маски составляем столбик для поразрядной конъюнкции вида
где маску мы заменяем на восемь знаков «*» - далее, в маску слева – направо записываем единицы до крайней правой единицы в адресе сети, например, если адрес сети = 10010010 (должно быть ровно 8 бит, если не хватает – добавляем незначащие нули), тогда маска будет 11111110
- отвечаем на поставленный вопрос
Алгоритм нахождения IP-адресов, сумма единиц/нулей в которых чётна/нечётна
- Переводим в двоичный вид IP-адрес и маску в уникальном разряде, где маска не равна 0 или 255
- Формируем IP-адреса: биты IP-адреса, у которыa в маске стоят единицы – переписываем, а биты, у которыa в маске стоят нули – заменяем «звёздочками»
- Считаем количество всех возможных комбинаций по формуле 2n, где n – количество «звездочек», и делим его на 2
- Записываем полученный ответ
Шаблон решения на 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