В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.
Сеть задана IP-адресом 192.168.76.160 и маской сети 255.255.255.240.
Сколько в этой сети IP-адресов компьютеров с чётными номерами и чётным количеством единиц в правом байте IP-адреса?
Решение:
Решение на Python:
from ipaddress import *
n = 0 # счет номера
k = 0
otv = []
for ip in ip_network('192.168.76.160/255.255.255.240', 0):
otv.append(f'{ip:b}')
n += 1
if n % 2 == 0:
ip2 = f'{ip:b}'
if ip2[-8:].count('1') % 2 == 0: k += 1
if otv[-1].count('1') % 2 == 0: k = k - 1 # последний ip не входит в ответ
print(k)
Ответ: 3
Ответ:
3