Генерация чисел по заданной маске
Есть функция 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