.03 Определение адреса сети
Ошибка.
Попробуйте повторить позже
В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети.
Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.
По заданным IP-адресу узла сети и маске определите адрес сети:
IP-адрес: 117.17.35.156
Маска: 255.255.240.0
В ответе укажите сумму цифр адреса сети.
Решение руками:
Первые два байта адреса сети совпадают с IP-адресом, так как в маске на этих местах стоят цифры 255. Четвертый байт адреса сети будет равен 0, так как в маске на этом месте стоит 0.
Запишем третий слева байт IP-адреса в двоичной системе счисления: .
Аналогично запишем третий слева байт маски, также в двоичной системе счисления: .
Учитывая, что адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске, найдем его:
IP | 00100011 |
Mask | 11110000 |
Net | 00100000 |
Получаем, что третий слева байт адреса сети равен: . А весь адрес сети –
. Сумма его
цифр равна:
.
Решение Python:
Для определения суммы цифр адреса сети сначала необходимо получить сам адрес сети. Адрес сети вычисляется поразрядной конъюнкцией (логическим И) между IP-адресом узла и маской сети. В Python удобно использовать модуль ipaddress, который позволяет создавать объект сети и автоматически определять адрес сети на основе заданного IP и маски. После получения адреса сети его можно представить в виде строки с точками, разделяющими октеты. Чтобы найти сумму всех цифр, перебираем каждый октет и складываем отдельные цифры. В конце программа выводит сумму цифр адреса сети.
from ipaddress import ip_network # Импортируем модуль для работы с IP-адресами и сетями # Создаем объект сети с заданным IP-адресом и маской # Функция ip_network автоматически вычисляет адрес сети по IP и маске net = ip_network(’117.17.35.156/255.255.240.0’, 0) # Получаем адрес сети network_address = str(net.network_address) # Считаем сумму всех цифр адреса сети # Разбиваем адрес на октеты, перебираем каждую цифру и суммируем sm = sum(int(i) for j in network_address.split(’.’) for i in j) # Выводим сумму цифр адреса сети print(sm)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!