Similar presentations:
Занятие 2.4
1. IP адреса
2. Определение
• IP-адрес (IPv4)• Формат: 4 октета по 8 бит = 32 бита
• Вид: XXX.XXX.XXX.XXX (каждое число от 0 до 255)
• Пример: 192.168.1.1
• В двоичном виде:
• 11000000.10101000.00000001.00000001
• Быстрый перевод:
• '.'.join(f'{x:>08b}' for x in [192,168,1,1])
3. Определение
• Маска подсети• Назначение: отделяет адрес сети от адреса узла
• /8
• /255.0.0.0 /11111111.00000000.00000000.00000000
• /16
• /255.255.0.0 /11111111.11111111.00000000.00000000
• /26
• /255.255.255.192 /11111111.11111111.11111111.11000000
• Сначала все единицы, затем нули
• Формула количества адресов: 2^(32-n), где n — префикс
4. Определение
• Адреса сети = IP-адрес AND Маска (побитовое И)5. Задача 1
В терминологии сетей TCP/IP маской сети называют двоичное число, которое
показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая к адресу узла в этой сети. Адрес сети получается в результате применения
поразрядной конъюнкции к заданному адресу узла и маске сети.
• По заданным IP-адресу узла сети и маске определите
адрес сети:
• IP-адрес: 10.8.248.131
• Маска: 255.255.224.0
• При записи ответа выберите из приведённых в таблице
чисел 4 фрагмента четыре элемента IP-адреса и запишите
в нужном порядке соответствующие им буквы без точек.
6. Ручное решение
7. Модуль ipaddress
• Встроенный модуль Python для работы с IPадресами и сетями.• Позволяет создавать объекты IP-адресов и сетей,
автоматически вычисляет адрес сети, маску,
широковещательный адрес, количество хостов..
Умеет проверять принадлежность адреса сети.
Для задач ЕГЭ удобен тем, что одной строкой
ip_network("IP/маска", 0) сразу даёт адрес сети и
все параметры.
8. Программное решение
• from ipaddress import *• net = ip_network("10.8.248.131/255.255.224.0",0)
• print(net) #10.8.224.0/19 выводит адрес сети
• # сопоставить числа в адресе сети с буквами из
таблицы
9. Задача 2
• В терминологии сетей TCP/IP маской сети называютдвоичное число, которое показывает, какая часть IPадреса узла сети относится к адресу сети, а какая - к
адресу узла в этой сети. Адрес сети получается в
результате применения поразрядной конъюнкции к
заданному адресу узла и маске сети.
• Для узла с IP адресом 118.193.30.139 адрес сети равен
118.193.24.0. Чему равно значение третьего слева байта
маски? Ответ запишите в виде десятичного числа.
10. Задача 2
• from ipaddress import *• for mask in range(33):
net = ip_network(f"118.193.30.139/{mask}",0)
print(net, net.netmask)
• # 248
11. Задача 3
• В терминологии сетей TCP/IP маской сети называютдвоичное число, которое показывает, какая часть IPадреса узла сети относится к адресу сети, а какая - к
адресу узла в этой сети. Адрес сети получается в
результате применения поразрядной конъюнкции к
заданному адресу узла и маске сети.
• Для узла с IP-адресом 154.201.208.17 адрес сети равен
154.201.192.0. Чему равно наибольшее возможное
значение третьего слева байта маски? Ответ запишите в
виде десятичного числа.
12. Задача 3
• from ipaddress import *• for mask in range(33):
net = ip_network(f"154.201.208.17/{mask}",0)
print(net, net.netmask)
• # 224
13. Задача 4
• В терминологии сетей TCP/IP маской сети называютдвоичное число, которое показывает, какая часть IPадреса узла сети относится к адресу сети, а какая - к
адресу узла в этой сети. Адрес сети получается в
результате применения поразрядной конъюнкции к
заданному адресу узла и маске сети.
• Для узла с IP адресом 122.21.49.91 адрес сети равен
122.21.48.0. Найдите наименьшее возможное количество
единиц в двоичной записи маски подсети.
14. Задача 4
• from ipaddress import *• for mask in range(33):
net = ip_network(f"122.21.49.91/{mask}",0)
print(net, net.netmask)
• # 20
15. Задача 5
• В терминологии сетей TCP/IP маской сети называютдвоичное число, которое показывает, какая часть IPадреса узла сети относится к адресу сети, а какая - к
адресу узла в этой сети. Адрес сети получается в
результате применения поразрядной конъюнкции к
заданному адресу узла и маске сети.
• Для узла с IP адресом 173.103.25.118 адрес сети равен
173.103.24.0. Найдите наибольшее возможное количество
нулей в двоичной записи маски подсети.
16. Задача 5
• from ipaddress import *• for mask in range(33):
net = ip_network(f"173.103.25.118/{mask}",0)
print(net, net.netmask)
• #количество нулей равно 32-количество единиц, чем
меньше 1, тем больше 0
17. Задача 6
• В терминологии сетей TCP/IP маской сети называютдвоичное число, которое показывает, какая часть IPадреса узла сети относится к адресу сети, а какая - к
адресу узла в этой сети. Адрес сети получается в
результате применения поразрядной конъюнкции к
заданному адресу узла и маске сети.
• Для узла с IP адресом 158.116.11.146 адрес сети равен
158.116.0.0. Для скольких различных значений маски это
возможно?
18. Задача 6
• from ipaddress import *• for mask in range(33):
net = ip_network(f"158.116.11.146/{mask}",0)
print(net, net.netmask)
• #7
19. Задача 7
• В терминологии сетей TCP/IP маской сети называютдвоичное число, которое показывает, какая часть IPадреса узла сети относится к адресу сети, а какая - к
адресу узла в этой сети. Адрес сети получается в
результате применения поразрядной конъюнкции к
заданному адресу узла и маске сети.
• Для узла с IP адресом 191.173.145.240 адрес сети равен
191.173.144.0. Чему равно наименьшее количество
возможных адресов в этой сети?
20. Задача 7
• from ipaddress import *• for mask in range(33):
net = ip_network(f"191.173.145.240/{mask}",0)
print(net, net.netmask, net.num_addresses)
• # 512
21. Задача 8
• В терминологии сетей TCP/IP маской сети называютдвоичное число, которое показывает, какая часть IPадреса узла сети относится к адресу сети, а какая - к
адресу узла в этой сети. Адрес сети получается в
результате применения поразрядной конъюнкции к
заданному адресу узла и маске сети.
• Для некоторой подсети используется маска 255.255.240.0.
Сколько различных адресов компьютеров теоретически
допускает эта маска, если два адреса (адрес сети и
широковещательный) не используют?
22. Задача 8
• from ipaddress import *• net = ip_network(f"0.0.0.0/255.255.240.0",0)
• print(net, net.netmask, net.num_addresses)
• # 4094
23. Задача 9
• В терминологии сетей TCP/IP маской сети называютдвоичное число, которое показывает, какая часть IPадреса узла сети относится к адресу сети, а какая - к
адресу узла в этой сети. Адрес сети получается в
результате применения поразрядной конъюнкции к
заданному адресу узла и маске сети.
• Два узла, находящиеся в одной сети, имеют IP-адреса
165.112.200.70 и 165.112.175.80. Найдите наибольшее
возможное количество единиц в двоичной записи маски
подсети.
24. Задача 9
• from ipaddress import *• for mask in range(33):
net1 = ip_network(f"165.112.200.70/{mask}",0)
net2 = ip_network(f"165.112.175.80/{mask}",0)
if net1 == net2:
• # 17
print(net1, net1.netmask)
25. Задача 10
• В терминологии сетей TCP/IP маской сети называютдвоичное число, которое показывает, какая часть IPадреса узла сети относится к адресу сети, а какая - к
адресу узла в этой сети. Адрес сети получается в
результате применения поразрядной конъюнкции к
заданному адресу узла и маске сети.
• Два узла, находящиеся в разных подсетях, имеют IPадреса 10.96.180.231 и 10.96.140.118. В масках обеих
подсетей одинаковое количество единиц. Найдите
наибольшее возможное количество нулей в двоичной
записи маски подсети.
26. Задача 10
• from ipaddress import *• for mask in range(33):
net1 = ip_network(f"10.96.180.231/{mask}",0)
net2 = ip_network(f"10.96.140.118/{mask}",0)
if net1 != net2:
• # 13
print(net1, net1.netmask)
27. Задача 11
• В терминологии сетей TCP/IP маской сети называютдвоичное число, которое показывает, какая часть IPадреса узла сети относится к адресу сети, а какая - к
адресу узла в этой сети. Адрес сети получается в
результате применения поразрядной конъюнкции к
заданному адресу узла и маске сети.
• Сеть задана IP-адресом 192.168.240.0 и маской сети
255.255.255.0. Сколько в этой сети IP-адресов, для которых
количество единиц и нулей в двоичной записи IP-адреса
одинаково?
• В ответе укажите только число.
28. Задача 11
• from ipaddress import *• k=0
• net1 = ip_network(f"192.168.240.0/255.255.255.0",0)
• for ip in net1:
if f"{ip:b}".count("1") == f"{ip:b}".count("0"):
k += 1
• print(k) #8
29. Задача 12
• В терминологии сетей TCP/IP маской сети называютдвоичное число, которое показывает, какая часть IPадреса узла сети относится к адресу сети, а какая - к
адресу узла в этой сети. Адрес сети получается в
результате применения поразрядной конъюнкции к
заданному адресу узла и маске сети.
• Сеть задана IP-адресом 10.48.96.0 и маской сети
255.255.240.0. Сколько в этой сети IP-адресов, для которых
количество единиц в двоичной записи IP-адреса больше,
чем количество нулей?
• В ответе укажите только число.
30. Задача 12
• from ipaddress import *• k=0
• net1 = ip_network(f"10.48.96.0/255.255.240.0",0)
• for ip in net1:
if f"{ip:b}".count("1") > f"{ip:b}".count("0"):
k += 1
• print(k) #13
internet