[Решено] Реализовать на python 3 калькулятор подсетей subnet_calculator.py (, который принимает IP адрес и маску в...

Реализовать на python 3 калькулятор подсетей subnet_calculator.py (, который принимает IP адрес и маску в формате CIDR (например, /27) как аргументы командной строки и выводит в консоль:

– адрес подсети

– маску подсети

– IP адреса первого и последнего хостов

– широковещательный адрес

– класс подсети

Описание аргументов командной строки скрипта:

./subnet_calculator.py –ip –cidr-mask

(1) Смотреть ответ
Данный ответ сгенерирован автоматически нейросетью, если Вы не нашли ответ на свой вопрос, попробуйте спросить нейросеть самостоятельно, для получения необходимого результата.
Это бесплатно.
Спросить нейросеть бесплатно

Ответ нейросети NoxAI

Я создал калькулятор подсетей на Python 3‚ который принимает IP адрес и маску в формате CIDR в качестве аргументов командной строки.​ Калькулятор выводит следующую информацию⁚ адрес подсети‚ маску подсети‚ IP адреса первого и последнего хостов‚ широковещательный адрес и класс подсети.Вот пример кода для калькулятора подсетей⁚

python
import sys
def calculate_subnet(ip‚ cidr_mask)⁚
ip_octets ip.​split(‘.​’)
binary_ip ».join([bin(int(octet))[2⁚].​zfill(8) for octet in ip_octets])
network_address binary_ip[⁚cidr_mask] ‘0’ * (32 ⸺ cidr_mask)
broadcast_address binary_ip[⁚cidr_mask] ‘1’ * (32 ー cidr_mask)

subnet_mask ‘1’ * cidr_mask ‘0’ * (32 ⸺ cidr_mask)
subnet_mask_octets [str(int(subnet_mask[i⁚i 8]‚ 2)) for i in range(0‚ 32‚ 8)]

network_address_octets [str(int(network_address[i⁚i 8]‚ 2)) for i in range(0‚ 32‚ 8)]
broadcast_address_octets [str(int(broadcast_address[i⁚i 8]‚ 2)) for i in range(0‚ 32‚ 8)]

start_ip network_address_octets[⁚3] [str(int(network_address_octets[3]) 1)]
end_ip broadcast_address_octets[⁚3] [str(int(broadcast_address_octets[3]) ⸺ 1)]
subnet_class determine_subnet_class(int(ip_octets[0]))

return ‘.​’.​join(network_address_octets)‚ ‘.​’.​join(subnet_mask_octets)‚ ‘.​’.​join(start_ip)‚ ‘.​’.join(end_ip)‚ ‘.​’.​join(broadcast_address_octets)‚ subnet_class

def determine_subnet_class(first_octet)⁚
if first_octet < 127⁚ return 'A' elif first_octet < 191⁚ return 'B' elif first_octet < 223⁚ return 'C' elif first_octet < 239⁚ return 'D' else⁚
return ‘E’

if __name__ ″__main__″⁚
ip sys.​argv[1]
cidr_mask int(sys.​argv[2])
network_address‚ subnet_mask‚ start_ip‚ end_ip‚ broadcast_address‚ subnet_class calculate_subnet(ip‚ cidr_mask)
print(″Адрес подсети⁚ {}″.format(network_address))
print(″Маска подсети⁚ {}″.​format(subnet_mask))
print(″IP адрес первого хоста⁚ {}″.​format(start_ip))
print(″IP адрес последнего хоста⁚ {}″.​format(end_ip))
print(″Широковещательный адрес⁚ {}″.format(broadcast_address))
print(″Класс подсети⁚ {}″.​format(subnet_class))

Вы можете запустить этот код‚ передав IP адрес и маску в формате CIDR в качестве аргументов командной строки‚ например⁚

python subnet_calculator.​py 192.​168.​0.​0 24

Этот пример выведет информацию о подсети 192.168.​0.0/24:

Адрес подсети⁚ 192.​168.0.0
Маска подсети⁚ 255.​255.​255.​0
IP адрес первого хоста⁚ 192.​168.​0.​1
IP адрес последнего хоста⁚ 192.​168.​0.​254
Широковещательный адрес⁚ 192.168.​0.​255
Класс подсети⁚ C

Этот калькулятор подсетей на Python 3 поможет вам быстро и удобно получать информацию о подсетях на основе заданного IP адреса и маски в формате CIDR.​

Читайте также  Выбери один правильный ответ и объясни почему он правильный.

1.) По охвату изучаемого явления индексы бывают:

a. б) Динамические индексы

b. в) Индексы количественных показателей

c. а) Индексы планового задания

2.) Выберите из ниже предложенного факторы, предопределяющие изменение производственных затрат:

a. в) Общие затраты труда

b. а)Себестоимость по отдельно взятым видам продукции

c. б) Цена единицы продукции

Оцените статью
Nox AI
Добавить комментарий