Маской подсети называется 32-разрядное двоичное число, которое определяет, какая часть IP-адреса компьютера относится к адресу сети, а какая часть IP-адреса определяет адрес компьютера в подсети. В маске подсети старшие биты, отведенные в IP-адресе компьютера для адреса сети, имеют
Если маска подсети 255.255.255.224 и IP-адрес компьютера в сети 162.198.0.157, то порядковый номер компьютера в сети
1. Поскольку первые три октета (октет — число маски, содержит
2. Запишем
3. Запишем последний октет IP-адреса компьютера в сети:
4. Сопоставим последний октет маски и адреса компьютера в сети:
11100000,
10011101.
Жирным выделена нужная нам часть, отвечающая (по условию) за адрес компьютера в подсети. Переведем её в десятичную систему счисления:
Ответ: 29.
Приведём решение Ларисы Нефёдовой на языке Python.
import ipaddress
def calculate_host_number(subnet_mask, ip_address):
network = ipaddress.IPv4Network(ip_address + '/' + subnet_mask, strict=False)
host_number = int(ipaddress.IPv4Address(ip_address)) - int(network.network_address)
return host_number
subnet_mask = '255.255.255.224'
ip_address = '162.198.0.157'
host_number = calculate_host_number(subnet_mask, ip_address)
print('Порядковый номер компьютера в сети:', host_number)
Приведём решение Данила Шарлова на языке Python.
from ipaddress import ip_network, ip_address
net = ip_network('162.198.0.157/255.255.255.224',0)
print(int(ip_address('162.198.0.157'))-int(net.network_address))

