Страница 1 из 1

Распределение IP адресов между динамическими листами

Добавлено: 08 окт 2018, 06:47
ivey
Здравствуйте, есть такая задача - имеется некоторое количество динамических листов с ip адресами например "1" лист - 6 адресов, "2" лист - 4 адреса и т.д суть проблемы в неравномерном распределении ip адресов между динамическими листами. Возможно ли с помощью скрипта сделать следующие: проверка количества ip адресов в листе - если оно не соответствует например количеству в 5 адресов, значит проверить если в следующем листе их меньше 5 - добавить лишний ip туда, ну и т.д вообщем проверить все листы и распределить между ними равномерно ip адреса. Помогите пожалуйста решить эту задачу.

Re: Распределение IP адресов между динамическими листами

Добавлено: 08 окт 2018, 11:09
Chupaka
Приветствую. В первой строке заполнить список листов.

Код: Выделить всё

:local lists {"test1";"test2";"test3"};

/ip firewall address-list;

:local MoveOverloaded do={
	:local num 0;
	:foreach i in=[find dynamic list=$2] do={
		:set num (num + 1);
		:if ($num > $1) do={
			add list=$3 address=[get $i address] timeout=[get $i timeout];
			remove $i;
		}
	}
};

:local total 0;
:foreach v in=$lists do={
	:set total ($total + [:len [find dynamic list=$v]]);
}

:local perList ($total / [:len $lists]);

:local prev;
:foreach v in=$lists do={
	:if ([:typeof $prev] != "nothing") do={
		$MoveOverloaded $perList $prev $v; 
	};
	
	:set prev $v;
}

Re: Распределение IP адресов между динамическими листами

Добавлено: 08 окт 2018, 11:26
ivey
Спасибо Вам большое буду испытывать после отпишусь.

Re: Распределение IP адресов между динамическими листами

Добавлено: 08 окт 2018, 16:20
ivey
Все работает! Огромное человеческое спасибо!