Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить на Питоне пожалуйста

Люда Прагина Ученик (87), закрыт 1 год назад
Нужно срочно решить на Python
Лучший ответ
Андрей Высший разум (483957) 1 год назад
 n, f = 0xFFFFFFFF, open('mask.log', 'w')
while True:
print('%d.%d.%d.%d' % tuple((n >> k) & 0xFF for k in range(24, -1, -8)), file=f)
if n == 0: break
n = (n << 1) & 0xFFFFFFFF
Остальные ответы
Татьяна Просветленный (36784) 1 год назад
Для генерации всех возможных масок подсети можно использовать функциональное программирование и генераторы списка. Маска подсети представляет собой 32-битное число, в котором первые n бит равны 1, а оставшиеся 32-n бит равны 0. Для генерации всех возможных масок подсети можно использовать цикл от 0 до 32, на каждой итерации которого создавать маску подсети с n единичными битами и 32-n нулевыми битами. Для создания маски подсети можно использовать битовые операции. Например, для создания маски подсети с 24 единичными битами можно использовать следующий код на языке Python:
 masks = ['.'.join([str((0xffffffff << (32-n)) >> i & 0xff) for i in [24, 16, 8, 0]]) for n in range(0, 33)] 
Этот код создаст список masks, содержащий все возможные маски подсети в формате строки, где каждый октет разделен точкой. Например, первый элемент списка будет '0.0.0.0', а последний элемент - '255.255.255.255'.
Для записи списка масок подсети в файл mask.log можно использовать следующий код:
 with open('mask.log', 'w') as f: 
f.write('\n'.join(masks))
Этот код откроет файл mask.log для записи и запишет в него все маски подсети, разделяя их символом переноса строки.
Источники:
  1. Пример расчета количества хостов и подсетей на основе IP-адреса и маски - Keenetic
  2. Маска подсети - Википедия
  3. Основы компьютерных сетей. Тема №5. Понятие IP адресации, масок подсетей и их расчет - Habr
Похожие вопросы