Тема 13 Организация компьютерных сетей

04 Определение маски

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела 13 организация компьютерных сетей
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#5916

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

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 97.122.41.0. адрес сети равен 97.122.32.0. Чему равно наибольшее значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(1, 33):
    net = ip_network(f’97.122.41.0/{mask}’, 0)
    print(net, net.netmask)
# Ищем в списке сеть 97.122.32.0 и выбираем ту, в которой количество единиц больше (число после знака /), в таком случае и значение маски будет больше

Решение руками:

Чтобы восстановить значение третьего слева байта маски, переведем числа, располагающиеся в соответствующей позиции в IP-адресе и адресе сети, в двоичную систему счисления. Затем воспользуемся таблицей истинности для этой операции:

|--|--|-----|
|a-|b-|a&b--|
|1-|1-|--1--|
|1-|0-|--0--|
|0 |1 |  0  |
|0-|0-|--0--|
-------------

Для IP-адреса:

4110 = 32 + 8 + 1 = 25 + 23 + 20 = 001010012   ;

Для адреса сети:

3210 = 32 = 25 = 001000002   ;

В результате поразрядной конъюнкции имеем:

&  00101001
---********--
   00100000

Если на месте ∗ стоит 1, то в этой позиции цифра в результате совпадет с цифрой в числе, которое нам нужно найти. Если же на месте ∗ стоит 0, то результат конъюнкции будет равен 0. Если на какой-то позиции в IP-адресе стоит 0, то, вообще говоря, нельзя однозначно определить, что стоит в этом месте в искомом числе — в результате конъюнкции все равно будет 0. Значит, на первых трех местах слева маски стоят единицы, а на четвертом месте слева месте может стоять 0 или 1. Так как нужно выбрать максимальное значение, запишем там 1. В маске в двоичном коде сначала стоят все единицы, а потом все нули, поэтому искомое число имеет вид 111100002   .

Маска не может начинаться с 0, поэтому окончательный ответ:
111100002  = 27 + 26 + 25 + 24 = 128 + 64 + 32 + 16 = 24010   .

Ответ: 240

Ошибка.
Попробуйте повторить позже

Задача 2#5917

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

 

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 35.167.206.16 адрес сети равен 35.167.192.0 Чему равно наименьшее значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(1, 33):
    net = ip_network(f’35.167.206.16/{mask}’, 0)
    print(net, net.netmask)
# Ищем в списке сеть 35.167.192.0 и выбираем ту, в которой количество единиц меньше (число после знака /), тогда и байт маски будет меньше

Решение руками:

Чтобы восстановить значение третьего слева байта маски, переведем числа, располагающиеся в соответствующей позиции в IP-адресе и адресе сети, в двоичную систему счисления. Затем воспользуемся таблицей истинности для этой операции:

 

|--|--|-----|
|a-|b-|a&b--|
|1-|1-|--1--|
|1 |0 |  0  |
|0-|1-|--0--|
|--|--|-----|
-0--0----0---

Для IP-адреса:

20610 = 128 + 64 + 8 + 4 + 2 = 27 + 26 + 23 + 22 + 21 = 110011102   ;

Для адреса сети:

                    7    6
19210 = 128 + 64 = 2  + 2 =  110000002   ;

В результате поразрядной конъюнкции имеем:

&  11001110
---********--
   11000000

Если на месте ∗ стоит 1, то в этой позиции цифра в результате совпадет с цифрой в искомом слагаемом. Если же на месте ∗ стоит 0, то результат конъюнкции будет равен 0. Если на какой-то позиции в IP-адресе стоит 0, то, вообще говоря, нельзя однозначно определить, что стоит в этом месте в искомом числе - в результате конъюнкции все равно будет 0. Значит, на третьем и четвертом местах слева может стоять как 0, так и 1. Так как нужно выбрать минимальное значение, запишем там 0. В маске в двоичном коде сначала стоят все единицы, а потом все нули, поэтому искомое число имеет вид 110000002   .

Маска не может начинаться с 0, поэтому окончательный ответ:               7    6
110000002  = 2 +  2 =  19210   .

Ответ: 192

Ошибка.
Попробуйте повторить позже

Задача 3#5947

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

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 203.90.129.237 адрес сети равен 203.90.129.236. Чему равно наименьшее значение четвертого слева байта маски? Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(1, 33):
    net = ip_network(f’203.90.129.237/{mask}’, 0)
    print(net, net.netmask)
# Ищем в списке сеть 203.90.129.236 и выбираем ту, в которой количество единиц меньше (число после знака /), тогда и байт маски будет меньше
# В ответ записываем четвертый байт маски

Решение руками:

Чтобы восстановить значение четвертого слева байта маски, переведем числа, располагающиеся в соответствующей позиции в IP-адресе и адресе сети, в двоичную систему счисления. Затем воспользуемся таблицей истинности для этой операции:

 

|--|--|-----|
|a-|b-|a&b--|
|1 |1 |  1  |
|1-|0-|--0--|
|--|--|-----|
|0-|1-|--0--|
-0--0----0---

Для IP-адреса:

23710 = 128 + 64 + 32 + 8 + 4 + 1 = 27 + 26 + 25 + 23 + 22 + 20 = 111011012   ;

Для адреса сети:

                                 7    6   5    3    2
23610 = 128 + 64 + 32 + 8 + 4 = 2 +  2 + 2  + 2  + 2  = 111011002   ;

В результате поразрядной конъюнкции имеем:

&  11101101
   ********
-------------
   11101100

Если на месте ∗ стоит 1, то в этой позиции цифра в результате совпадет с цифрой в искомом слагаемом. Если же на месте ∗ стоит 0, то результат конъюнкции будет равен 0. Если на какой-то позиции в IP-адресе стоит 0, то, вообще говоря, нельзя однозначно определить, что стоит в этом месте в искомом числе - в результате конъюнкции все равно будет 0. Значит, на cедьмом месте слева месте может стоять как 0, так и 1. Так как нужно выбрать минимальное значение, запишем там 0. В маске в двоичном коде сначала стоят все единицы, а потом все нули, поэтому искомое число имеет вид 111111002   .

Маска не может начинаться с 0, поэтому окончательный ответ: 11111100   = 27 + 26 + 25 + 24 + 23 = 128 + 64 + 32 + 16 + 8 + 4 = 252
         2                                                            10   .

Ответ: 252

Ошибка.
Попробуйте повторить позже

Задача 4#6040

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

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

По IP-адресу узла 125.170.90.148 и адресу сети 125.170.88.0 определите чему равно наименьшее количество единиц в двоичной записи третьего байта маски.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(1, 33):
    net = ip_network(f’125.170.90.148/{mask}’, strict=False)
    third_byte_mask = bin(int(net.netmask))[2:].zfill(32)[16:24]
    print(net, third_byte_mask)  # Вывод адреса сети и третьего слева байта маски
# Ищем в списке сеть  125.170.88.0 и выбираем ту, в которой количество единиц меньше

Решение руками:

Чтобы восстановить значение третьего слева байта маски, переведем числа, располагающиеся в соответствующей позиции в IP-адресе и маске сети, в двоичную систему счисления. Затем воспользуемся таблицей истинности для этой операции:

|--|--|-----|
|a-|b-|a&b--|
|1-|1-|--1--|
|1 |0 |  0  |
|0-|1-|--0--|
|--|--|-----|
-0--0----0---

Для IP-адреса:

9010 = 64 + 16 + 8 + 2 = 26 + 24 + 23 + 21 = 010110102   ;

Для адреса сети:

                      6    4   3
8810 = 64 + 16 + 8 = 2 + 2  + 2  = 010110002   ;

Запишем уравнение поразрядной конъюнкции IP-адреса и маски, в результате которой получается адрес сети:

&  01011010
   ********
-------------
   01011000

Если на месте ∗ стоит 1, то в этой позиции цифра в результате совпадет с цифрой в числе, которое нам нужно найти. Если же на месте ∗ стоит 0, то результат конъюнкции будет равен 0. Если на какой-то позиции в IP-адресе стоит 0, то, вообще говоря, нельзя однозначно определить, что стоит в этом месте в искомом числе — в результате конъюнкции все равно будет 0. Значит, на первых пяти местах слева маски стоят единицы, а на шестом месте слева может стоять 0 или 1. Так как нужно выбрать минимальное значение, запишем там 0. В маске в двоичном коде сначала стоят все единицы, а потом все нули, поэтому искомое число имеет вид 111110002   .

Наименьшее возможное количество единиц в маске равно 5.

Ответ: 5

Ошибка.
Попробуйте повторить позже

Задача 5#6041

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

 

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

По IP-адресу узла 216.234.148.136 и адресу сети 216.234.144.0 определите чему равно наименьшее количество единиц в двоичной записи третьего байта маски.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(1, 33):
    net = ip_network(f’216.234.148.136/{mask}’, strict=False)
    third_byte_mask = bin(int(net.netmask))[2:].zfill(32)[16:24]
    print(net, third_byte_mask)  # Вывод адреса сети и третьего слева байта маски
# Ищем в списке сеть  216.234.144.0 и выбираем ту, в которой количество единиц меньше

Решение руками:

Чтобы восстановить значение третьего слева байта маски, переведем числа, располагающиеся в соответствующей позиции в IP-адресе и маске сети, в двоичную систему счисления. Затем воспользуемся таблицей истинности для этой операции:

|--|--|-----|
|a-|b-|a&b--|
|1-|1-|--1--|
|1 |0 |  0  |
|0-|1-|--0--|
|--|--|-----|
-0--0----0---

Для IP-адреса:

14810 = 128 + 16 + 4 = 26 + 24 + 22 = 100101002   ;

Для адреса сети:

                    6    4
14410 = 128 + 16 = 2  + 2 =  100100002   ;

В результате поразрядной конъюнкции имеем:

&  10010100
---********--
   10010000

Если на месте ∗ стоит 1, то в этой позиции цифра в результате совпадет с цифрой в числе, которое нам нужно найти. Если же на месте ∗ стоит 0, то результат конъюнкции будет равен 0. Если на какой-то позиции в IP-адресе стоит 0, то, вообще говоря, нельзя однозначно определить, что стоит в этом месте в искомом числе — в результате конъюнкции все равно будет 0. Значит, на первых четрех местах слева маски стоят единицы, а на пятом месте слева месте может стоять 0 или 1. Так как нужно выбрать минимальное значение, запишем там 0. В маске в двоичном коде сначала стоят все единицы, а потом все нули, поэтому искомое число имеет вид 111100002   .

Наименьшее возможное количество единиц в маске равно 4.

Ответ: 4

Ошибка.
Попробуйте повторить позже

Задача 6#6587

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

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 113.184.190.40 маска равна 255.255.224.0. Чему равно количество нулей третьего слева байта адреса сети? Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network
# Определяем сеть
net = ip_network(f’113.184.190.40/255.255.224.0’, 0)
# Получаем сетевой адрес в двоичном виде
net1 = bin(int(net.network_address))[2:].zfill(32)
# Извлекаем третий байт и выводим количество нулей
print(net1[16:24].count(’0’))

Решение руками:

Чтобы восстановить значение третьего слева байта адреса сети, переведем числа, располагающиеся в соответствующей позиции в IP-адресе и адресе сети, в двоичную систему счисления. Затем воспользуемся таблицей истинности для этой операции:

|--|--|-----|
|a-|b-|a&b--|
|1-|1-|--1--|
|1 |0 |  0  |
|0-|1-|--0--|
|--|--|-----|
-0--0----0---

Для IP-адреса:

19010 = 128 + 32 + 16 + 8 + 4 + 2 = 27 + 25 + 24 + 23 + 22 + 21 = 101111102   ;

Для маски:

                         7    6    5
22410 = 128 + 64 + 32 = 2  + 2 +  2 =  111000002   ;

В результате поразрядной конъюнкции имеем:

 & 10111110
---11100000---
   ********

Если же 0 есть на позиции в одном из чисел, значит результат конъюнкции цифр, стоящих на этих позициях будет равен 0. Значит, на первом и третьем местах слева месте не должен стоять 0. Так как конъюнкция только двух цифр равных 1 равна 1, поэтому искомое число имеет вид 101000002   , которое имеет 2 единицы.

В каждом байте адреса содержится 8 цифр, поэтому окончательный ответ: 8 − 2 = 6  .

Ответ: 6

Ошибка.
Попробуйте повторить позже

Задача 7#6588

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

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 179.189.172.104 адрес сети равен 179.189.172.96. Чему равно наименьшее значение четвертого слева байта маски? Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(1, 33):
    net = ip_network(f’179.189.172.104/{mask}’, 0)
    print(net, net.netmask)  # Вывод адреса сети и маски
# Ищем в списке сеть  179.189.172.96 и выбираем ту, в которой значение четвертого байта маски меньше

Решение руками:

Чтобы восстановить значение четвертого слева байта маски, переведем числа, располагающиеся в соответствующей позиции в IP-адресе и адресе сети, в двоичную систему счисления. Затем воспользуемся таблицей истинности для этой операции:

 

|--|--|-----|
|a-|b-|a&b--|
|1-|1-|--1--|
|1 |0 |  0  |
|0-|1-|--0--|
|--|--|-----|
-0--0----0---

Для IP-адреса:

10410 = 64 + 32 + 8 = 26 + 25 + 23 = 011010002   ;

Для адреса сети:

                  6    5
9610 = 64 + 32 = 2 +  2 =  011000002   ;

В результате поразрядной конъюнкции имеем:

&  01101000
--********---
  01100000

Если на месте ∗ стоит 1, то в этой позиции цифра в результате совпадет с цифрой в искомом слагаемом. Если же на месте ∗ стоит 0, то результат конъюнкции будет равен 0. Если на какой-то позиции в IP-адресе стоит 0, то, вообще говоря, нельзя однозначно определить, что стоит в этом месте в искомом числе - в результате конъюнкции все равно будет 0. Значит, на четвертом месте слева месте может стоять как 0, так и 1. Так как нужно выбрать минимальное значение, запишем там 0. В маске в двоичном коде сначала стоят все единицы, а потом все нули, поэтому искомое число имеет вид 111000002   .

Маска не может начинаться с 0, поэтому окончательный ответ:               7    6    5
111000002  = 2  + 2 +  2 =  128 + 64 + 32 = 22410   .

Ответ: 224

Ошибка.
Попробуйте повторить позже

Задача 8#6589

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

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 165.225.161.164 адрес сети равен 165.225.161.160. Чему равно наибольшее значение четвертого слева байта маски? Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(1, 33):
    net = ip_network(f’165.225.161.164/{mask}’, 0)
    print(net, net.netmask)  # Вывод адреса сети и маски
# Ищем в списке сеть 165.225.161.160 и выбираем ту, в которой значение четвертого байта маски больше

Решение руками:

Чтобы восстановить значение четвертого слева байта маски, переведем числа, располагающиеся в соответствующей позиции в IP-адресе и адресе сети, в двоичную систему счисления. Затем воспользуемся таблицей истинности для этой операции:

|--|--|-----|
|a-|b-|a&b--|
|1-|1-|--1--|
|1-|0-|--0--|
|0 |1 |  0  |
|0-|0-|--0--|
-------------

Для IP-адреса:

16410 = 128 + 32 + 4 = 27 + 25 + 22 + 2 = 101001002   ;

Для адреса сети:

16010 = 128 + 32 = 27 + 25 = 101000002   ;

В результате поразрядной конъюнкции имеем:

&  10100100
---********--
   10100000

Если на месте ∗ стоит 1, то в этой позиции цифра в результате совпадет с цифрой в искомом слагаемом. Если же на месте ∗ стоит 0, то результат конъюнкции будет равен 0. Если на какой-то позиции в IP-адресе стоит 0, то, вообще говоря, нельзя однозначно определить, что стоит в этом месте в искомом числе - в результате конъюнкции все равно будет 0. Значит, на четвертом и пятом местах слева месте может стоять как 0, так и 1. Так как нужно выбрать максимальное значение, запишем там 1. В маске в двоичном коде сначала стоят все единицы, а потом все нули, поэтому искомое число имеет вид 111110002   .

Маска не может начинаться с 0, поэтому окончательный ответ:               7    6    5    4    3
111110002  = 2  + 2  + 2 +  2 + 2  =  24810   .

Ответ: 248

Ошибка.
Попробуйте повторить позже

Задача 9#68762

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

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 117.35.122.92 адрес сети равен 117.35.120.0. Чему равно наименьшее значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(1, 33):
    net = ip_network(f’117.35.122.92/{mask}’, 0)
    print(net, net.netmask)  # Вывод адреса сети и маски
# Ищем в списке сеть 117.35.120.0 и выбираем ту, в которой значение четвертого байта маски меньше

Решение руками:

Чтобы восстановить значение третьего слева байта маски, переведем числа, располагающиеся в соответствующей позиции в IP-адресе и адресе сети, в двоичную систему счисления. Затем воспользуемся таблицей истинности для этой операции:

 

|--|--|----|
|a |b |a&b |
|--|--|----|
|1-|1-|-1--|
|1-|0-|-0--|
|0 |1 | 0  |
|--|--|----|
-0--0---0---

Для IP-адреса:

12210 = 011110102  ;

Для адреса сети:

12010 = 011110002  ;

В результате поразрядной конъюнкции имеем:

 & 01111010
   ********
------------
   01111000

Если на месте ∗ стоит 1, то в этой позиции цифра в результате совпадет с цифрой в искомом слагаемом. Если же на месте ∗ стоит 0, то результат конъюнкции будет равен 0. Если на какой-то позиции в IP-адресе стоит 0, то, вообще говоря, нельзя однозначно определить, что стоит в этом месте в искомом числе - в результате конъюнкции все равно будет 0.

Значит, на шестом месте слева месте может стоять как 0, так и 1. Так как нужно выбрать минимальное значение, запишем там 0. В маске в двоичном коде сначала стоят все единицы, а потом все нули, поэтому искомое число имеет вид 111110002  .

Маска не может начинаться с 0, поэтому окончательный ответ: 111110002 = 24810  .

Ответ: 248

Ошибка.
Попробуйте повторить позже

Задача 10#68763

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

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 91.144.83.48 адрес сети равен 91.144.64.0. Чему равно наибольшее значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(1, 33):
    net = ip_network(f’91.144.83.48/{mask}’, 0)
    print(net, net.netmask)  # Вывод адреса сети и маски
# Ищем в списке сеть 91.144.64.0 и выбираем ту, в которой значение четвертого байта маски больше

Решение руками:

Чтобы восстановить значение третьего слева байта маски, переведем числа, располагающиеся в соответствующей позиции в IP-адресе и адресе сети, в двоичную систему счисления. Затем воспользуемся таблицей истинности для этой операции:

 

|--|--|----|
|a |b |a&b |
|--|--|----|
|1-|1-|-1--|
|1-|0-|-0--|
|0 |1 | 0  |
|--|--|----|
-0--0---0---

Для IP-адреса:

8310 = 010100112  ;

Для адреса сети:

6410 = 010000002  ;

В результате поразрядной конъюнкции имеем:

 & 01010011
   ********
------------
   01000000

Если на месте ∗ стоит 1, то в этой позиции цифра в результате совпадет с цифрой в искомом слагаемом. Если же на месте ∗ стоит 0, то результат конъюнкции будет равен 0. Если на какой-то позиции в IP-адресе стоит 0, то, вообще говоря, нельзя однозначно определить, что стоит в этом месте в искомом числе - в результате конъюнкции все равно будет 0.

Значит, на третьем месте слева месте может стоять как 0, так и 1. Так как нужно выбрать максимальное значение, запишем там 1. В маске в двоичном коде сначала стоят все единицы, а потом все нули, поэтому искомое число имеет вид 111000002  .

Маска не может начинаться с 0, поэтому окончательный ответ: 111000002 = 22410  .

Ответ: 224

Ошибка.
Попробуйте повторить позже

Задача 11#68764

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

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 178.32.27.129 адрес сети равен 178.32.24.0. Чему равно наибольшее значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(1, 33):
    net = ip_network(f’178.32.27.129/{mask}’, 0)
    print(net, net.netmask)  # Вывод адреса сети и маски
# Ищем в списке сеть 178.32.24.0 и выбираем ту, в которой значение четвертого байта маски больше

Решение руками:

Чтобы восстановить значение третьего слева байта маски, переведем числа, располагающиеся в соответствующей позиции в IP-адресе и адресе сети, в двоичную систему счисления. Затем воспользуемся таблицей истинности для этой операции:

 

|--|--|----|
|a |b |a&b |
|--|--|----|
|1-|1-|-1--|
|1-|0-|-0--|
|0 |1 | 0  |
|--|--|----|
-0--0---0---

Для IP-адреса:

2710 = 000110112  ;

Для адреса сети:

2410 = 000110002  ;

В результате поразрядной конъюнкции имеем:

 & 00011011
   ********
------------
   00011000

Если на месте ∗ стоит 1, то в этой позиции цифра в результате совпадет с цифрой в искомом слагаемом. Если же на месте ∗ стоит 0, то результат конъюнкции будет равен 0. Если на какой-то позиции в IP-адресе стоит 0, то, вообще говоря, нельзя однозначно определить, что стоит в этом месте в искомом числе - в результате конъюнкции все равно будет 0.

Значит, на шестом месте слева месте может стоять как 0, так и 1. Так как нужно выбрать максимальное значение, запишем там 1. В маске в двоичном коде сначала стоят все единицы, а потом все нули, поэтому искомое число имеет вид 111111002  .

Маска не может начинаться с 0, поэтому окончательный ответ: 111111002 = 25210  .

Ответ: 252

Ошибка.
Попробуйте повторить позже

Задача 12#69504

В терминологии сетей TCP/IP маска сети — это двоичное число, меньшее 232  ; в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места нули. Маска определяет, какая часть IP-адреса узла сети относится к адресу сети, а какая -– к адресу самого узла в этой сети.

Обычно маска записывается по тем же правилам, что и IP-адрес — в виде четырёх байт, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.

Например, если IP-адрес узла равен 121.32.255.121, а маска равна 255.255.255.0, то адрес сети равен 121.32.255.0.

Для узла с IP-адресом 204.185.106.48 адрес сети равен 204.185.96.0. Найдите наименьшее возможное количество единиц в двоичной записи маски подсети.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(33):
    net = ip_network(f’204.185.106.48/{mask}’, 0)
    print(net, net.netmask)  # Вывод адреса сети и маски
# Ищем в списке сеть 204.185.96.0 и выбираем ту, в которой количество единиц меньше (значение после /)

Решение руками:

Перепишем IP-адрес узла и адрес сети в двоичной системе счисления:

IP 11001100.10111001.01101010.00110000
Net 11001100.10111001.01100000.00000000

Зная тот факт, что адрес подсети получается путём перемножения цифр двоичной записи маски и IP-адреса, можно точно определить некоторые цифры в маске подсети:

Mask 11111111.11111111.111*0000.00000000
IP 11001100.10111001.01101010.00110000
Net 11001100.10111001.01100000.00000000

Так как по условию задачи нам необходимо найти наименьшее количество единиц, то на пустое место поставим ноль.

Получим маску подсети – 11111111.11111111.11100000.00000000. Количество единиц в ней равно 19.

Ответ: 19

Ошибка.
Попробуйте повторить позже

Задача 13#71800

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

Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске. Обычно маска записывается по тем же правилам, что и IP-адрес — в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа.

Пример. Пусть IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0. Тогда адрес сети равен 231.32.240.0.

Для узла с IP-адресом 199.88.184.57 адрес сети равен 199.88.176.0. Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(33):
    net = ip_network(f’199.88.184.57/{mask}’, 0)
    print(net, net.netmask)  # Вывод адреса сети и маски
# Ищем в списке сеть 199.88.176.0 и смотрим на значение третьего слева байта маски

Решение руками:

Рассмотрим третий слева байт в IP-адресе узла и адресе сети, представим их в двоичном виде:

18410 = 101110002

17610 = 101100002

Заметим, что в 1, 3 и 4 слева битах маски должна стоять единица, чтобы в первом, третьем и четвертом битах адреса сети была единица, а в 5 слева бите – ноль, так как в ip-адресе там стоит единица, а в адресе сети ноль. И так как в маске сначала идут единицы, а потом одни нули, третий байт будет равен 111100002 = 24010  .

Ответ: 240

Ошибка.
Попробуйте повторить позже

Задача 14#71806

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

Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске. Обычно маска записывается по тем же правилам, что и IP-адрес — в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа.

Пример. Пусть IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0. Тогда адрес сети равен 231.32.240.0.

Для узла с IP-адресом 222.135.184.200 адрес сети равен 222.135.160.0. Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(33):
    net = ip_network(f’222.135.184.200/{mask}’, 0)
    print(net, net.netmask)  # Вывод адреса сети и маски
# Ищем в списке сеть 222.135.160.0 и смотрим на значение третьего слева байта маски

Решение руками:

Рассмотрим третий слева байт в IP-адресе узла и адресе сети, представим их в двоичном виде:

18410 = 101110002

16010 = 101000002

Заметим, что в 3 слева бите маски должна стоять единица, чтобы в третьем бите адреса сети была единица, а в 4 слева бите – ноль, так как в ip-адресе там стоит единица, а в адресе сети ноль. И так как в маске сначала идут единицы, а потом одни нули, третий байт будет равен 111000002 = 22410  .

Ответ: 224

Ошибка.
Попробуйте повторить позже

Задача 15#71807

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

Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске. Обычно маска записывается по тем же правилам, что и IP-адрес — в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа.

Пример. Пусть IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0. Тогда адрес сети равен 231.32.240.0.

Для узла с IP-адресом 114.217.199.111 адрес сети равен 114.217.128.0. Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(33):
    net = ip_network(f’114.217.199.111/{mask}’, 0)
    print(net, net.netmask)  # Вывод адреса сети и маски
# Ищем в списке сеть 114.217.128.0 и смотрим на значение третьего слева байта маски

Решение руками:

Рассмотрим третий слева байт в IP-адресе узла и адресе сети, представим их в двоичном виде:

19910 = 110001112

12810 = 100000002

Заметим, что в 1 слева бите маски должна стоять единица, чтобы в первом бите адреса сети была единица, а в 2 слева бите – ноль, так как в ip-адресе там стоит единица, а в адресе сети ноль. И так как в маске сначала идут единицы, а потом одни нули, третий байт будет равен 100000002 = 12810  .

Ответ: 128

Ошибка.
Попробуйте повторить позже

Задача 16#72216

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

Например, если IP-адрес узла равен 131.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 131.32.240.0.

Для узла с IP-адресом 147.36.148.86 адрес сети равен 147.36.128.0. Для скольких значений третьего слева байта маски допустим такой адрес сети?

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(33):
    net = ip_network(f’147.36.148.86/{mask}’, 0)
    print(net, net.netmask)  # Вывод адреса сети и маски
# Ищем в списке сеть 147.36.128.0 и смотрим количество различных масок

Решение руками:

Запишем третий слева байт IP-адреса в двоичной системе счисления: 10010100  .

Аналогично запишем третий слева байт адреса сети, также в двоичной системе счисления: 10000000  .

Учитывая, что адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске, запишем возможный вариант маски, обозначив символом «x» те места, где маска может иметь неоднозначное значение: 1xx00000  .

Мы знаем, что в маске сначала идут единицы, затем нули. Значит, возможно вставить всего три различных варианта вместо «хх»: 00, 10, 11.

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 17#72217

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

Например, если IP-адрес узла равен 131.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 131.32.240.0.

Для узла с IP-адресом 130.110.203.197 адрес сети равен 130.110.203.196. Какое минимальное количество единиц может быть в маске сети?

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(33):
    net = ip_network(f’130.110.203.197/{mask}’, 0)
    print(net, net.netmask)  # Вывод адреса сети и маски
# Ищем в списке сеть 130.110.203.196 и смотрим на минимальное значение количества единиц (число после /)

Решение руками:

Запишем четвертый слева байт IP-адреса в двоичной системе счисления: 197  = 11000101
   10          2  .

Аналогично запишем четыертый слева байт адреса сети, также в двоичной системе счисления: 19610 = 110001002  .

Учитывая, что адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске, запишем возможный вариант маски, обозначив символом «x» те места, где маска может иметь неоднозначное значение: 111111x0  .

Так как по условию задачи нам необходимо найти минимальное количество единиц, то на место символа «x» ставим цифру 0. Получаем искомое количество единиц: 8 +8 + 8+ 6 = 30  .

Ответ: 30

Ошибка.
Попробуйте повторить позже

Задача 18#72218

В терминологии сетей TCP/IP маска сети – это двоичное число, меньшее 232  ; в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места нули.

Маска определяет, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес – в виде четырех байт, причем каждый байт записывается в виде десятичного числа.

Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске. Например, если IP-адрес узла равен 131.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 131.32.240.0.

Для узла с IP-адресом 25.74.172.28 адрес сети равен 25.74.160.0. Найдите наименьшее возможное количество нулей в двоичной записи маски подсети.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(33):
    net = ip_network(f’25.74.172.28/{mask}’, 0)
    print(net, bin(int(net.netmask))[2:].zfill(32).count(’0’))  # Вывод адреса сети и количества нулей в маске
# Ищем в списке сеть 25.74.160.0 и смотрим на минимальное значение количества нулей

Решение руками:

Запишем третий слева байт IP-адреса в двоичной системе счисления: 172  = 10101100
   10          2  .

Аналогично запишем третий слева байт адреса сети, также в двоичной системе счисления: 16010 = 101000002  .

Учитывая, что адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске, запишем возможный вариант маски, обозначив символом «x» те места, где маска может иметь неоднозначное значение: 111x0000  .

Так как по условию задачи нам необходимо найти минимальное количество нулей, то на место символа «x» ставим цифру 1. Получаем искомое количество нулей: 4+ 8 = 12  .

Ответ: 12

Ошибка.
Попробуйте повторить позже

Задача 19#72224

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

Для узла с IP-адресом 210.210.230.65 адрес сети равен 210.210.224.0.

Найдите наименьшее возможное количество нулей в двоичной записи маски подсети.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(33):
    net = ip_network(f’210.210.230.65/{mask}’, 0)
    print(net, bin(int(net.netmask))[2:].zfill(32).count(’0’))  # Вывод адреса сети и количества нулей в маске
# Ищем в списке сеть 210.210.224.0 и смотрим на минимальное значение количества нулей

Решение руками:

Запишем третий и четвертый слева байты IP-адреса в двоичной системе счисления: 230  = 11100110
   10          2  , 6510 = 010000012

Аналогично запишем третий и четвертый слева байты адреса сети, также в двоичной системе счисления: 224  = 11100000
   10          2  , 0  = 00000000
 10          2  .

Учитывая, что адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске, запишем возможный вариант двух последних байт маски, обозначив символом «x» те места, где маска может иметь неоднозначное значение: 111xx000.00000000  .

Так как по условию задачи нам необходимо найти наименьшее количество нулей, то на место символа «x» ставим цифру 1. Получаем искомое количество нулей: 3+ 8 = 11  .

Ответ: 11

Ошибка.
Попробуйте повторить позже

Задача 20#72225

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

Для узла с IP-адресом 135.121.69.38 адрес сети равен 135.121.64.0.

Найдите наибольшее возможное значение третьего слева байта маски.

Ответ запишите в виде десятичного числа.

Показать ответ и решение

Решение Python:

from ipaddress import ip_network

for mask in range(33):
    net = ip_network(f’135.121.69.38/{mask}’, 0)
    print(net, net.netmask)
# Ищем в списке сеть 135.121.64.0 и смотрим на наибольшее значение третьего байта маски

Решение руками:

Запишем третий слева байт IP-адреса в двоичной системе счисления: 69  = 01000101
  10          2  .

Аналогично запишем третий слева байт адреса сети, также в двоичной системе счисления: 6410 = 010000002  .

Учитывая, что адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске, запишем возможный вариант третьего слева байта маски, обозначив символом «x» те места, где маска может иметь неоднозначное значение: 11xxx000  .

Так как по условию задачи нам необходимо найти наибольшее возможное значение третьего слева байта маски, то на место символа «x» ставим цифру 1. Получаем значение третьего байта:111110002 = 24810  .

Ответ: 248
Рулетка
Вы можете получить скидку в рулетке!