Генерация чисел по заданной маске

Есть функция get_rand_0_255(), которая генерирует случайное число в диапазоне от 0 до 255. Есть еще одна функция get_ip(), которая должна генерировать ip адресс по заданному шаблону mask. Подскажите, пожалуйста, как правильно написать функцию get_ip()?

from random import randint


def get_rand_0_255():
    return randint(0, 255)


def get_ip(mask="xxx.xx.xx.x"):
    mask_list = mask.split('.')
    ip_parts = []
# Неизвестный блок кода

return ".".join(ip_parts)

Ответы (2 шт):

Автор решения: CrazyElf

Ну вот так наверное:

from random import randint

def get_rand_0_255():
    return randint(0, 255)

def get_ip(mask="xxx.xx.xx.x"):
    mask_list = mask.split('.')
    ip_parts = [str(get_rand_0_255())[:len(m)] for m in mask_list]
    return ".".join(ip_parts)

print(get_ip())

Ну то есть обрезаем сгенерированное число по размеру маски.

→ Ссылка
Автор решения: strawdog

можно так:

from random import randint

def gen_subnet(digit_length=2):
    stop = 256 if digit_length > 2 else 10**digit_length
    start = 10**(digit_length-1)
    return randint(start, stop)
    

def gen_ip(mask="xxx.xx.xx.x"):
    return ".".join([str(gen_subnet(len(x))) for x in mask.split(".")])


print(gen_ip()) # 217.26.64.1
→ Ссылка