<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Скрипт – аренда DHCP для простых очередей]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Скрипт – аренда DHCP для простых очередей форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Fri, 31 Jul 2026 23:15:47 -0400</pubDate>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436562">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Пожалуйста, помогите изменить скрипт «DHCP Lease to Simple Queues», чтобы он работал на Mikrotik RouterOS v7.13. Обратите внимание, что скрипт отлично функционировал на предыдущей версии Mikrotik RouterOS v6.9. <br />
			<i>31.12.2023 08:48:00, anassar26.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436562</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436562</guid>
			<pubDate>Sun, 31 Dec 2023 08:48:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436561">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Вау, это работает отлично, спасибо!!! <br />
			<i>13.09.2022 09:24:00, hmdslm1.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436561</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436561</guid>
			<pubDate>Tue, 13 Sep 2022 09:24:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436560">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Подождите... с /22 ничего не работает. Помогите, пожалуйста. <br />
			<i>25.10.2019 04:23:00, stanego.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436560</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436560</guid>
			<pubDate>Fri, 25 Oct 2019 04:23:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436559">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Огромное спасибо! Ты сэкономил мне часы, пытаясь сделать это самому. Удаление в конце — просто гениально. Респект, лайки и золото тебе, сэр! <br />
			<i>11.02.2019 04:14:00, gammy69er.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436559</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436559</guid>
			<pubDate>Mon, 11 Feb 2019 04:14:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436558">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Спасибо, брат, за этот скрипт. Он мне очень понадобился месяц назад, когда нужно было создать несколько отдельных очередей, <img  src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="http://mikrotik.moscow/upload/main/smiles/2/bx_smile_sad.png" border="0" data-code=":-(" data-definition="UHD" alt=":-(" style="width:20px;height:20px;" title="Печально" class="lazyload bx-smile" /> Я могу подтвердить, что он отлично работает на версии 6.43.4. Кстати, я выложил этот пост, потому что скрипт очень интересный и простой. Привет и ещё раз спасибо. <br /><br />P.S. Я слишком быстро говорил, кажется, скрипт хорошо добавляет очереди, но не удаляет их, когда запись истекает или принудительно завершается. Подскажите, кто может помочь? <br />
			<i>17.11.2018 15:36:00, Temorizador.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436558</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436558</guid>
			<pubDate>Sat, 17 Nov 2018 15:36:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436557">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет! Мне интересно насчёт этого скрипта. Кто-нибудь знает, ограничивает ли очередь цель сразу или только если уже назначено много других лизов? Буду очень признателен за любую информацию. Заранее спасибо! <br />
			<i>15.03.2018 10:00:00, Onexios.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436557</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436557</guid>
			<pubDate>Thu, 15 Mar 2018 10:00:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436556">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Попробуйте вот это <noindex><a href="http://forum.mikrotik.com/t/make-automatic-static-dhcp-leases/101221/1" target="_blank" rel="nofollow" >http://forum.mikrotik.com/t/make-automatic-static-dhcp-leases/101221/1</a></noindex> <br />
			<i>04.09.2016 00:13:00, BrasDeutscher.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436556</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436556</guid>
			<pubDate>Sun, 04 Sep 2016 00:13:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436555">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет, я просто пытаюсь вручную запустить скрипт, чтобы проверить его, но, к сожалению, он, похоже, ничего не делает. Этот скрипт требует переменные DHCP, которые передаются при запуске lease-скрипта, так что просто запускать его из терминала не получится. Тебе нужны значения для $leaseActMAC и $leaseActIP, которые соответствуют уже существующей аренде. Я бы посоветовал для теста применить его на реальном DHCP-сервере, но если хочешь убедиться, что ограничения не сработают, просто создай очереди, которые будут отключены при создании, например: /queue simple add disabled=yes ... <br />
			<i>23.08.2016 02:12:00, boen_robot.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436555</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436555</guid>
			<pubDate>Tue, 23 Aug 2016 02:12:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436554">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет, я просто пытаюсь вручную выполнить скрипт, чтобы его протестировать, но, к сожалению, он, похоже, ничего не делает. В списке простых очередей ничего не отображается. Какие правильные политики нужно установить, чтобы скрипт работал? Совместим ли он с RouterOS 6.34.4? Я пытаюсь сделать так, чтобы один из пользователей локальной сети не забирал всю полосу пропускания, а у остальных оставался интернет. Спасибо. <br />
			<i>22.08.2016 22:15:00, amperex.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436554</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436554</guid>
			<pubDate>Mon, 22 Aug 2016 22:15:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436553">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			В Winbox (или, насколько я знаю, в WebFig то же самое...) зайдите в меню «IP &gt; DHCP Server», на вкладке «DHCP» дважды кликните по DHCP-серверу, к которому хотите добавить скрипт. Вставьте или напишите скрипт в текстовое поле внизу (где немного выше написано «Lease script:»). <br />
			<i>09.03.2016 16:32:00, boen_robot.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436553</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436553</guid>
			<pubDate>Wed, 09 Mar 2016 16:32:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436552">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Можете, пожалуйста, уточнить, как добавить скрипт аренды? <br />
			<i>09.03.2016 15:35:00, Zapnologica.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436552</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436552</guid>
			<pubDate>Wed, 09 Mar 2016 15:35:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436551">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Недавно мне нужно было создать очереди для записей DHCP, и я использовал гораздо более простое решение… Следующий скрипт применяется как lease-script:<br /><br />:local queueName "Guest $leaseActMAC";<br /><br />:if ($leaseBound = "1") do={<br /> &nbsp; &nbsp;/queue simple add name=$queueName parent=GUESTS place-before="Guest STATIC" target=($leaseActIP . "/32") max-limit=10M/10M comment=[/ip dhcp-server lease get [find where active-mac-address=$leaseActMAC && active-address=$leaseActIP] host-name];<br />} else={<br /> &nbsp; &nbsp;/queue simple remove $queueName<br />}<br /><br />Родительская очередь «GUESTS» содержит общий лимит, который делится между пользователями. И, как видите, каждый пользователь получает 10 Мбит/с на загрузку и выгрузку… Настраивайте скорость по своему желанию.<br /><br />Каждый раз, когда запись DHCP истекает (или принудительно удаляется), lease-script вызывается с $leaseBound равным «0», так что это автоматически добавляет и удаляет очереди. <br />
			<i>26.02.2015 14:14:00, boen_robot.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436551</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436551</guid>
			<pubDate>Thu, 26 Feb 2015 14:14:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436550">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет, dignome, твой скрипт безупречен… Я добавил небольшую доработку, чтобы различать диапазон (минимальный и максимальный) IP-адресов и тем самым создавать разные правила для разных клиентов. P.S.: Я пытался сделать это через сетевую маску, но у меня не получилось. Спасибо, Бернардо.<br /><br /># DHCP Lease to Simple Queues &nbsp;<br /># 2014 Lonnie Mendez (lmendez@anvilcom.com) &nbsp;<br /># &nbsp;<br /># Mikrotik RouterOS v6.9 &nbsp;<br /><br />/ip dhcp-server lease &nbsp;<br />:foreach x in=[find] do={  <br /><br /># захватываем переменные для дальнейшего использования &nbsp;<br />:local leaseaddr ([get $x address])  <br />:local leasemacaddr [get $x mac-address]  <br />:local leasehostname [get $x host-name]  <br />:local leasename [get $x comment]  <br />:local queuecomment &nbsp;<br /><br />:local minlimit 192.168.88.20 &nbsp;<br />:local maxlimit 192.168.88.100 &nbsp;<br /><br />:local leaseinqueue false &nbsp;<br /><br />/queue simple &nbsp;<br />:foreach y in=[find] do={  <br /><br /># захватываем переменные для дальнейшего использования &nbsp;<br />:local queuetargetaddr [get $y target]  <br />:set queuecomment [get $y comment]  <br /><br /># Извлекаем информацию из поля comment (MAC, Hostname) &nbsp;<br />:local queuemac [:pick $queuecomment 4 21]  <br />:local queuehostname [:pick $queuecomment 22 [:len $queuecomment]]  <br /><br /># Если MAC из lease совпадает с MAC в очереди — обновляем запись очереди &nbsp;<br />:if ($queuemac = $leasemacaddr) do={ &nbsp;<br /># формируем поле comment &nbsp;<br />:set queuecomment ("dtq," . $leasemacaddr . "," . $leasehostname) &nbsp;<br /><br />set $y target=$leaseaddr comment=$queuecomment &nbsp;<br />:if ($leasename != "") do= { &nbsp;<br />set $y name=($leasename . " (" . $leasemacaddr . ")") &nbsp;<br />} else= { &nbsp;<br />:if ($leasehostname != "") do= { &nbsp;<br />set $y name=($leasehostname . " (" . $leasemacaddr . ")") &nbsp;<br />} else= { &nbsp;<br />set $y name=$leasemacaddr &nbsp;<br />} &nbsp;<br />} &nbsp;<br />:set leaseinqueue true &nbsp;<br />} else= { &nbsp;<br /># если IP существует для этого lease, но MAC другой — обновляем MAC/hostname и сбрасываем счетчик &nbsp;<br />:if ($queuetargetaddr = $leaseaddr) do={ &nbsp;<br /># формируем поле comment &nbsp;<br />:set queuecomment ("dtq," . $leasemacaddr . "," . $leasehostname) &nbsp;<br /><br />set $y comment=$queuecomment &nbsp;<br />reset-counters $y &nbsp;<br />:if ($leasename != "") do= { &nbsp;<br />set $y name=($leasename . " (" . $leasemacaddr . ")") &nbsp;<br />} else= { &nbsp;<br />:if ($leasehostname != "") do= { &nbsp;<br />set $y name=($leasehostname . " (" . $leasemacaddr . ")") &nbsp;<br />} else= { &nbsp;<br />set $y name=$leasemacaddr &nbsp;<br />} &nbsp;<br />} &nbsp;<br />:set leaseinqueue true &nbsp;<br />} &nbsp;<br />} &nbsp;<br />} &nbsp;<br /><br /># Если записи не было — добавляем для этого lease &nbsp;<br />:if ($leaseinqueue = false) do={ &nbsp;<br /># формируем поле comment &nbsp;<br />:set queuecomment ("dtq," . $leasemacaddr . "," . $leasehostname) &nbsp;<br /># формируем команду &nbsp;<br />:local cmd "/queue simple add target=$leaseaddr max-limit=128k/2M comment=$queuecomment" &nbsp;<br />:if ($leasename != "") do={ &nbsp;<br />:set cmd "$cmd name=\"$leasename ($leasemacaddr)\"" &nbsp;<br />} else= { &nbsp;<br />:if ($leasehostname != "") do={ &nbsp;<br />:set cmd "$cmd name=\"$queuehostname ($leasemacaddr)\"" &nbsp;<br />} else= { &nbsp;<br />:set cmd "$cmd name=\"$leasemacaddr\"" &nbsp;<br />} &nbsp;<br />} &nbsp;<br /><br /># Выполняем команду, если IP входит в заданный диапазон &nbsp;<br />:if ($leaseaddr &gt;= $minlimit && $leaseaddr &lt;= $maxlimit) do={ &nbsp;<br />:execute $cmd &nbsp;<br />} &nbsp;<br />} &nbsp;<br />} &nbsp;<br /><br /># Очистка — удаляем динамические записи, которых больше нет в таблице lease &nbsp;<br />/queue simple &nbsp;<br />:foreach z in=[find] do={  <br />:local queuecomment [get $z comment]  <br />:local queue1stpart [:pick $queuecomment 0 3]  <br />:local queue2ndpart [:pick $queuecomment 4 21]  <br />:if ( $queue1stpart = "dtq") do={ &nbsp;<br />:if ( [/ip dhcp-server lease find mac-address=$queue2ndpart] = "") do={  <br />:log info ("DTQ: Удаляем устаревшую запись для MAC адреса - " . $queue2ndpart) &nbsp;<br />remove $z &nbsp;<br />} &nbsp;<br />} &nbsp;<br />} <br />
			<i>26.02.2015 14:01:00, bpita.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436550</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436550</guid>
			<pubDate>Thu, 26 Feb 2015 14:01:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт – аренда DHCP для простых очередей</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436549">Скрипт – аренда DHCP для простых очередей</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Зачем? Просто способ для тех, кто не очень дружит с техникой, понять, кто или что грузит интернет на роутере. Легко можно ограничить скорость для каждого отдельного компьютера или устройства. Практически не требует обслуживания, так как скрипт сам поддерживает таблицу simple queue в актуальном состоянии и самостоятельно убирает старые записи.<br /><br />Что он делает: этот скрипт просматривает таблицу DHCP-аренд в ROS, чтобы создать записи simple queue для каждого устройства. Он обновляет эти записи и удаляет устаревшие.<br /><br />Как использовать: скопируйте текст ниже в новый скрипт в RouterOS. Запланируйте выполнение скрипта с нужной периодичностью через планировщик RouterOS. Для устройств, отображаемых в списке simple queue только по MAC-адресу, можно задать имя вручную в таблице DHCP lease в поле комментария.<br /><br /># DHCP Lease to Simple Queues &nbsp;<br /># 2014 Lonnie Mendez (lmendez@anvilcom.com) &nbsp;<br /># &nbsp;<br /># Mikrotik RouterOS v6.9<br /><br />/ip dhcp-server lease &nbsp;<br />:foreach x in=[find] do={<br /><br /> &nbsp;# берем переменные для дальнейшего использования &nbsp;<br /> &nbsp;:local leaseaddr ([get $x address]."/32")  <br /> &nbsp;:local leasemacaddr [get $x mac-address]  <br /> &nbsp;:local leasehostname [get $x host-name]  <br /> &nbsp;:local leasename [get $x comment]  <br /> &nbsp;:local queuecomment &nbsp;<br /> &nbsp;:local leaseinqueue false<br /><br /> &nbsp;/queue simple &nbsp;<br /> &nbsp;:foreach y in=[find] do={<br /><br /> &nbsp; &nbsp;# берем переменные для использования дальше &nbsp;<br /> &nbsp; &nbsp;:local queuetargetaddr [get $y target]  <br /> &nbsp; &nbsp;:set queuecomment [get $y comment]<br /><br /> &nbsp; &nbsp;# выделяем из комментария информацию (MAC, имя хоста) &nbsp;<br /> &nbsp; &nbsp;:local queuemac [:pick $queuecomment 4 21]  <br /> &nbsp; &nbsp;:local queuehostname [:pick $queuecomment 22 [:len $queuecomment]]<br /><br /> &nbsp; &nbsp;# если MAC из аренды совпадает с MAC в очереди — обновляем запись в очереди &nbsp;<br /> &nbsp; &nbsp;:if ($queuemac = $leasemacaddr) do={ &nbsp;<br /> &nbsp; &nbsp; &nbsp;# формируем комментарий &nbsp;<br /> &nbsp; &nbsp; &nbsp;:set queuecomment ("dtq," . $leasemacaddr . "," . $leasehostname)<br /><br /> &nbsp; &nbsp; &nbsp;set $y target=$leaseaddr comment=$queuecomment &nbsp;<br /> &nbsp; &nbsp; &nbsp;:if ($leasename != "") do= { &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;set $y name=($leasename . " (" . $leasemacaddr . ")") &nbsp;<br /> &nbsp; &nbsp; &nbsp;} else= { &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;:if ($leasehostname != "") do= { &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set $y name=($leasehostname . " (" . $leasemacaddr . ")") &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;} else= { &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set $y name=$leasemacaddr &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;} &nbsp;<br /> &nbsp; &nbsp; &nbsp;} &nbsp;<br /> &nbsp; &nbsp; &nbsp;:set leaseinqueue true &nbsp;<br /> &nbsp; &nbsp;} else= { &nbsp;<br /> &nbsp; &nbsp; &nbsp;# если IP есть, но MAC другой — обновляем MAC/имя и сбрасываем счетчики &nbsp;<br /> &nbsp; &nbsp; &nbsp;:if ($queuetargetaddr = $leaseaddr) do={ &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;# формируем комментарий &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set queuecomment ("dtq," . $leasemacaddr . "," . $leasehostname)<br /><br /> &nbsp; &nbsp; &nbsp; &nbsp;set $y comment=$queuecomment &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;reset-counters $y &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;:if ($leasename != "") do= { &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set $y name=($leasename . " (" . $leasemacaddr . ")") &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;} else= { &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:if ($leasehostname != "") do= { &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set $y name=($leasehostname . " (" . $leasemacaddr . ")") &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else= { &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set $y name=$leasemacaddr &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;} &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set leaseinqueue true &nbsp;<br /> &nbsp; &nbsp; &nbsp;} &nbsp;<br /> &nbsp; &nbsp;} &nbsp;<br /> &nbsp;}<br /><br /> &nbsp;# если записи не было — добавляем новую для этой аренды &nbsp;<br /> &nbsp;:if ($leaseinqueue = false) do={ &nbsp;<br /> &nbsp; &nbsp;# формируем комментарий &nbsp;<br /> &nbsp; &nbsp;:set queuecomment ("dtq," . $leasemacaddr . "," . $leasehostname) &nbsp;<br /> &nbsp; &nbsp;# составляем команду &nbsp;<br /> &nbsp; &nbsp;:local cmd "/queue simple add target=$leaseaddr max-limit=100M/100M comment=$queuecomment" &nbsp;<br /> &nbsp; &nbsp;:if ($leasename != "") do={ &nbsp;<br /> &nbsp; &nbsp; &nbsp;:set cmd "$cmd name=\"$leasename ($leasemacaddr)\"" &nbsp;<br /> &nbsp; &nbsp;} else= { &nbsp;<br /> &nbsp; &nbsp; &nbsp;:if ($leasehostname != "") do={ &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set cmd "$cmd name=\"$leasehostname ($leasemacaddr)\"" &nbsp;<br /> &nbsp; &nbsp; &nbsp;} else= { &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set cmd "$cmd name=\"$leasemacaddr\"" &nbsp;<br /> &nbsp; &nbsp; &nbsp;} &nbsp;<br /> &nbsp; &nbsp;}<br /><br /> &nbsp; &nbsp;:execute $cmd &nbsp;<br /> &nbsp;} &nbsp;<br />}<br /><br /># Очистка — удаляем динамические записи, которых уже нет в таблице аренды &nbsp;<br />/queue simple &nbsp;<br />:foreach z in=[find] do={  <br /> &nbsp;:local queuecomment [get $z comment]  <br /> &nbsp;:local queue1stpart [:pick $queuecomment 0 3]  <br /> &nbsp;:local queue2ndpart [:pick $queuecomment 4 21]  <br /> &nbsp;:if ( $queue1stpart = "dtq") do={ &nbsp;<br /> &nbsp; &nbsp;:if ( [/ip dhcp-server lease find mac-address=$queue2ndpart] = "") do={  <br /> &nbsp; &nbsp; &nbsp;:log info ("DTQ: Удаляю устаревшую запись для MAC-адреса - " . $queue2ndpart) &nbsp;<br /> &nbsp; &nbsp; &nbsp;remove $z &nbsp;<br /> &nbsp; &nbsp;} &nbsp;<br /> &nbsp;} &nbsp;<br />} <br />
			<i>21.07.2014 03:31:00, dignome.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436549</link>
			<guid>http://mikrotik.moscow/forum/forum57/89400-skript-_-arenda-dhcp-dlya-prostykh-ocheredey/message436549</guid>
			<pubDate>Mon, 21 Jul 2014 03:31:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
