Kiberchief
@Kiberchief
Пока учусь.

Как преобразовать префикс CIDR в маску сети?

Пожалуйста помогите решить данную проблему необходимо дописать код так чтобы введенная маска вместе с ип к примеру 192.168.75.2/24 или 192.168.75.2/3 преобразовывалась в 192.168.75.2 255.255.255.0 и тому подобное
через кучу ифов делать это как-то не очень хочется в интернете нашел такой код но он походу нерабочий
import socket
import struct

def cidr_to_netmask(cidr):
    network, net_bits = cidr.split('/')
    host_bits = 32 - int(net_bits)
    netmask = socket.inet_ntoa(struct.pack('!I', (1 << 32) - (1 << host_bits)))
    return network, netmask

Ниже то что я накидал помогите пожалуйста его дописать
import struct
import socket


print ("enter IP/Mask: ")
StatIP = input()
print ("enter Gateway: ")
StatGA = input()
net_bits = StatIP.split('/')
  • Вопрос задан
  • 439 просмотров
Решения вопроса 1
@galaxy
нашел такой код но он походу нерабочий

Почему вы решили, что нерабочий?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@MrPurrPurr
import ipaddress

StatIP =  input("enter IP/Mask: ")
cidr = ipaddress.ip_interface(StatIP)
print(cidr.ip, cidr.netmask)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы