Похожие презентации:
Алгоритмы решения задания 13. Подготовка к ЕГЭ по информатике. 10-11 классы
1.
Алгоритмы решения задания 13Подготовка к ЕГЭ по информатике
10-11 классы
2.
ИсточникиПримеры задач взяты на странице генератора
заданий ЕГЭ сайта К.Полякова (kp):
https://kpolyakov.spb.ru/school/ege/generate.htm
и на сайте kompege.ru (k).
Каждое задание снабжено номером из
каталога заданий указанного источника
3.
Функция ip_network()Функция ip_network('ipaddress/mask'[,0])
• Входит в состав модуля ipaddress языка Python.
• Определяет сеть по IP-адресу и маске.
• Возвращает результат в виде объекта IPv4Network
• В нестрогом режиме (второй аргумент = 0) может
принимать в качестве IP-адреса любой IP-адрес из
описываемой сети. Через слеш указывается маска
или количество единиц в ней.
• Возвращаемый результат – адрес сети и количество
единиц в маске через слеш.
• С помощью данной функции можно найти все
адреса сетей для различных масок.
4.
Свойства IPv4Networknet = ip_network('ipaddress/mask',0):
• свойство .network_address возвращает
IP-адрес сети;
• свойство .broadcast_address возвращает
широковещательный адрес сети;
• свойство .num_addresses возвращает
общее количество адресов в сети;
• свойство .netmask возвращает маску сети;
• свойство .prefixlen длина префикса сети в битах.
5.
Mетод IPv4Networknet = ip_network('ipaddress/mask',0):
• метод .hosts() возвращает итератор (списочное
выражение) IP-адресов узлов в сети.
В него не входят адрес сети и
широковещательный адрес.
– используется аргументом list() или в распакованном
виде через "*".
– например,
net=ip_network('135.12.170.217/255.255.248.0',0)
print(len([*net.hosts()]))
# 2046
6.
Виды заданийТиповые виды заданий:
• определить IP-адрес сети;
• найти количество единиц в маске сети;
• определить маску по 2-м IP-адресам;
• найти количество компьютеров в сети;
• количество IP-адресов, соответствующих
условию.
7.
Определить IP-адрес сети2 подхода к решению:
– аналитический – вручную выписать двоичное
представление IP-адреса и маски сети и найти
их поразрядную конъюнкцию;
– решение при помощи программы.
8.
Определить IP-адрес сетиПример задачи № 1:
(№ kp252) По заданным IP-адресу узла сети и
маске определите адрес сети:
IP-адрес: 135.12.170.217
Маска: 255.255.248.0
При записи ответа выберите из приведенных в
таблице чисел 4 фрагмента четыре элемента IPадреса и запишите в нужном порядке
соответствующие им буквы без точек.
9.
Программа решения примера №1from ipaddress import *
net=ip_network('135.12.170.217/255.255.248.0',0)
print(net.network_address)
# 135.12.168.0
Результат программы поможет записать ответ к
заданию в требуемом виде
Ответ: EBGA
10.
Hайти количество единиц в маскеПример задачи № 2:
(№ k10153)
В терминологии сетей TCP/IP маска сети – это двоичное число, меньшее 232; в маске сначала (в старших
разрядах) стоят единицы, а затем с некоторого места нули. Маска определяет, какая часть IP-адреса
узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска
записывается по тем же правилам, что и IP-адрес – в виде четырёх байт, причём каждый байт
записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной
конъюнкции к заданному IP-адресу узла и маске.
Для узла с IP-адресом 115.12.69.38 адрес сети
равен 115.12.64.0. Найдите наименьшее
возможное количество единиц в двоичной записи
маски подсети.
11.
Программа решения примера №2from ipaddress import *
for mask in range(0,32
+1):
net = ip_network(f'115.12.69.38/{mask}',0)
if str(net.network_address)=='115.12.64.0':
print(mask);break
Ответ: 18
12.
Найти маску сети по 2-м IP-адресамПример задачи № 3:
(№ k10161)
В терминологии сетей TCP/IP маска сети – это двоичное число, меньшее 232; в маске сначала (в
старших разрядах) стоят единицы, а затем с некоторого места нули. Маска определяет, какая
часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети.
Обычно маска записывается по тем же правилам, что и IP-адрес – в виде четырёх байт, причём
каждый байт записывается в виде десятичного числа. Адрес сети получается в результате
применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Два узла, находящиеся в одной сети, имеют IPадреса: 211.115.61.154 и 211.115.59.137. Укажите
наибольшее возможное значение третьего слева
байта маски сети. Ответ запишите в виде
десятичного числа.
13.
Программа решения примера №3from ipaddress import *
for mask in range(32,0,-1):
net1 = ip_network(f'211.115.61.154/{mask}',0)
net2 = ip_network(f'211.115.59.137/{mask}',0)
if net1==net2:
msk=str(net1.netmask).split('.')[-2]
print(msk);break
Ответ: 248
14.
Найти количество адресов в сетиПример задачи № 4:
(№ k10165)
В терминологии сетей TCP/IP маска сети – это двоичное число, меньшее 232; в маске сначала (в
старших разрядах) стоят единицы, а затем с некоторого места нули. Маска определяет, какая часть IPадреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска
записывается по тем же правилам, что и IP-адрес – в виде четырёх байт, причём каждый байт
записывается в виде десятичного числа. Адрес сети получается в результате применения
поразрядной конъюнкции к заданному IP-адресу узла и маске.
Для узла с IP-адресом 156.133.216.35 адрес сети
равен 156.133.216.0. Чему равно наибольшее
количество возможных адресов в этой сети?
15.
Программа решения примера №4# max кол-во узлов получится при MSKmin
from ipaddress import *
for mask in range(0, 32 +1):
net = ip_network(f'156.133.216.35/{mask}',0)
if str(net.network_address)=='156.133.216.0':
print(net.num_addresses);break
Ответ: 2048
16.
Найти количество узлов в сетиПример задачи № 5:
(№ kp6839)
В терминологии сетей TCP/IP маска сети – это двоичное число, меньшее 232; в маске сначала (в
старших разрядах) стоят единицы, а затем с некоторого места нули. Маска определяет, какая часть IPадреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска
записывается по тем же правилам, что и IP-адрес – в виде четырёх байт, причём каждый байт
записывается в виде десятичного числа. Адрес сети получается в результате применения
поразрядной конъюнкции к заданному IP-адресу узла и маске.
Сеть задана IP-адресом 192.168.32.160 и маской
сети 255.255.255.240.
Сколько в этой сети IP-адресов, для которых сумма
единиц в двоичной записи IP-адреса чётна?
17.
Программа решения примера №5from ipaddress import *
net = ip_network(f'192.168.32.160/255.255.255.240',0)
k= 0
for ip in net:
k2 = f'{ip:b}'.count('1')
k+= (k2%2 == 0)
print(k)
Ответ: 8
18.
Спасибо за внимание!В этой презентации рассмотрены
варианты заданий №13 экзамена ЕГЭ-2024
Успехов в решениях!
Интернет