.01 Номер компьютера в сети
Ошибка.
Попробуйте повторить позже
В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.
Широковещательным адресом называется специализированный адрес, в котором на месте нулей в маске стоят единицы. Адрес сети и широковещательный адрес не могут быть использованы для адресации сетевых устройств.
Сеть задана IP-адресом одного из входящих в неё узлов 191.128.66.83 и сетевой маской 255.192.0.0.
Найдите в данной сети наибольший IP-адрес, который может быть назначен компьютеру. В ответе укажите найденный IP-адрес без разделителей.
Например, если бы найденный адрес был равен 111.22.3.44, то в ответе следовало бы записать: 11122344.
Решение руками
Переведём IP-адрес узла и маску сети в двоичную систему счисления:
IP узла | 10111111.10000000.01000010.01010011 |
Маска | 11111111.11000000.00000000.00000000 |
Узлы в сети имеют вид:
Нам нужно найти наибольший IP-адрес в данной сети, который может быть назначен компьютеру. Но мы не можем назначать компьютеру широковещательный адрес.
Поэтому, последний возможный IP-адрес будет равен:
Решение программой
Для нахождения наибольшего IP-адреса компьютера в сети необходимо определить широковещательный адрес сети и взять адрес, предшествующий ему. Широковещательный адрес является последним адресом в диапазоне сети и не может быть использован для компьютеров. Следовательно, наибольший допустимый адрес для компьютера будет предпоследним адресом в сети.
В Python для работы с IP-адресами удобно использовать модуль ipaddress, который позволяет легко выполнять операции с сетевыми диапазонами. Создаем объект сети с помощью метода ip_network(), используя IP-адрес узла и маску подсети. Затем, используя индексацию [-2], получаем предпоследний адрес в сети, который и будет искомым наибольшим адресом для компьютера.
# Импортируем модуль для работы с IP-адресами from ipaddress import * # Создаем объект сети с указанным IP-адресом и маской net = ip_network(’191.128.66.83/255.192.0.0’, 0) # Получаем предпоследний адрес в сети: # net[-1] - последний адрес (широковещательный) # net[-2] - предпоследний адрес # str() - преобразуем IP-адрес в строку # replace(’.’,’’) - удаляем все точки из строки, чтобы дать ответ без разделителей print(str(net[-2]).replace(’.’,’’)) # Вывод: 191191255254.
Специальные программы

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

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

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

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

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

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