<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Решай проблемы.]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Решай проблемы. форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 13 Aug 2026 20:37:54 -0400</pubDate>
		<item>
			<title>Решай проблемы.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280962">Решай проблемы.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет, если ты использовал первый код, сделай небольшое изменение, и всё будет ок с новой версией прошивки: замени `:execute script=resolvehostnames-sub` на `:execute script="resolvehostnames-sub"`. Оригинальный скрипт будет работать с версией 6.31. Надеюсь, это тебе пригодится, Maxspeed.<br /><br />Из этого кода: ros код<br /><br />Задержка на X секунд, чтобы разрешить имя хоста:<br /><br />:local delay 5<br />define variables:<br />:global comment<br />:global newip<br />:local list<br />:local oldip<br />start logging /log info “[RESOLVE] - START”<br /><br />Перебор каждой записи в списке адресов:<br />:foreach i in=[/ip firewall address-list find] do={<br />очищаем переменную newip каждый раз:<br />:set newip “”<br />Получаем первые пять символов имени списка:<br />:set list [:pick [/ip firewall address-list get $i list] 0 5]<br />Если они ‘host_’, то это совпадение — обрабатываем его:<br />:if ($list = “host_”) do={<br />Получаем комментарий для этого элемента списка адресов (это имя хоста для использования):<br />:set comment [/ip firewall address-list get $i comment]<br />/log info “[RESOLVE] - checking $comment”<br />:set oldip [/ip firewall address-list get $i address]<br />/log info “[RESOLVE] - old ip: $oldip”<br />/log info “[RESOLVE] - calling sub-script”<br />:execute script=resolvehostnames-sub<br />Этот скрипт не ждет разрешения под-скриптом имени хоста, поэтому нужно задержаться на время:<br />:local counter 1<br />while ($counter &lt;= $delay) do={<br />/log info “[RESOLVE] - waiting for hostname to resolve - attempt $counter”<br />:delay 1s<br />if length of new ip is greater than zero, break out of loop:<br />:if ([:len $newip] &gt; 0) do={<br />:set counter $delay<br />}<br />increment counter:<br />:set counter ($counter + 1)<br />}<br />if new ip length is greater than zero, an ip was resolved:<br />:if ([:len $newip] &gt; 0) do={<br />/log info “[RESOLVE] - new ip: $newip”<br />if newip does not equal oldip:<br />:if ($newip != $oldip) do={<br />/log info “[RESOLVE] - ip has changed, updating address list”<br />Set the address list entry accordingly<br />/ip firewall address-list set $i address=$newip<br />}<br />else={<br />/log info “[RESOLVE] - new ip matches old ip, no change”<br />}<br />}<br />else={<br />/log info “[RESOLVE] - did not get new ip, timed out”<br />}<br />}<br />/log info “[RESOLVE] - END”<br /><br />Под-скрипт, названный resolvehostnames-sub ros code<br /><br />Убедись, что имя этого скрипта совпадает с именем, вызываемым из основного скрипта (resolvehostnames-sub):<br />:global comment<br />:global newip<br />/log info “[RESOLVE] - trying to resolve $comment from sub-script”<br />:set newip [:resolve $comment] <br />
			<i>20.09.2015 15:32:00, maxspeed.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280962</link>
			<guid>http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280962</guid>
			<pubDate>Sun, 20 Sep 2015 15:32:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Решай проблемы.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280961">Решай проблемы.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Это моя версия скрипта resolve, он преобразует IP-адрес в имя хоста или имя хоста в IP-адрес: wcsnet, copyright © 2010. все права защищены. версия скрипта: 1.0.<br /><br />:do {<br />:local content<br />:local newhost<br />:local oldhost<br />:log info “******************** starting - ip resolve ip*******************”<br />:log info “-”<br />:foreach i in=[/ip firewall address-list find list=“resolve ip” and disabled=no] do={<br />:set content [/ip firewall address-list get $i address]<br />:set oldhost [/ip firewall address-list get $i comment]<br />:do {<br />:set newhost [:resolve $content]<br />} on-error={<br />:log error “dns resolve failure &nbsp;[ ip - resolve ip ]”<br />}<br />: if ($newhost != $oldhost) do={<br />/ip firewall address-list set $i comment=$newhost<br />:log warning “$[/system identity get name]  $comment dns host name changed: $oldhost → $newhost”<br />}<br />}<br />:log info “******************** ending - ip resolve ip********************”<br />:exec “o - after script run”<br />} on-error={<br />:log error “script failure &nbsp;[ ip - resolve ip ]”<br />}<br /><br />:do {<br />:local content<br />:local newip<br />:local oldip<br />:log info “******************** starting - ip resolve host*******************”<br />:log info “-”<br />:foreach i in=[/ip firewall address-list find list=“resolve host” and disabled=no] do={<br />:set content [/ip firewall address-list get $i comment]<br />:set oldip [/ip firewall address-list get $i address]<br />:do {<br />:set newip [:resolve $content]<br />} on-error={<br />:log error “dns resolve failure &nbsp;[ ip - resolve host ]”<br />}<br />: if ($newip != $oldip) do={<br />/ip firewall address-list set $i address=$newip<br />:log warning “$[/system identity get name]  $comment ip address changed: $oldip → $newip”<br />}<br />}<br />:log info “******************** ending - ip resolve host********************”<br />:exec “o - after script run”<br />} on-error={<br />:log error “script failure &nbsp;[ ip - resolve host ]”<br />} <br />
			<i>09.02.2015 09:02:00, wcsnet.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280961</link>
			<guid>http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280961</guid>
			<pubDate>Mon, 09 Feb 2015 09:02:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Решай проблемы.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280960">Решай проблемы.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Скрипт у меня работает отлично на v6.3, не знаю, почему у тебя перестал работать. Первым делом проверь логи. Посмотри записи [RESOLVE], возможно, там будет видно, где происходит сбой. Какая последняя запись [RESOLVE] появляется? Для дополнительного тестирования можешь заключить весь основной скрипт в скобки {}, а потом вставить его в терминал. Возможно, это поможет выявить ошибки в скрипте. <br />
			<i>21.09.2013 17:57:00, skot.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280960</link>
			<guid>http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280960</guid>
			<pubDate>Sat, 21 Sep 2013 17:57:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Решай проблемы.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280959">Решай проблемы.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Спасибо, Скот, за этот отличный скрипт! <br />
			<i>21.09.2013 08:41:00, Netsplite.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280959</link>
			<guid>http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280959</guid>
			<pubDate>Sat, 21 Sep 2013 08:41:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Решай проблемы.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280958">Решай проблемы.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет, skot! Большое спасибо за твой скрипт, он отлично работал, пока я был на v5.25, но пару дней назад обновился до v6.3, и он перестал обновлять адреса. Он все еще работает каждые 3 минуты, но теперь он этого не делает =( Ребят, какие-нибудь идеи, что могло измениться между v5.25 и v6.3? Или есть способ это исправить и заставить его снова работать? <br />
			<i>10.09.2013 17:08:00, lglego.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280958</link>
			<guid>http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280958</guid>
			<pubDate>Tue, 10 Sep 2013 17:08:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Решай проблемы.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280957">Решай проблемы.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет! У меня проблема с использованием этого скрипта <noindex><a href="http://wiki.mikrotik.com/wiki/Use_host_names_in_firewall_rules:" target="_blank" rel="nofollow" >http://wiki.mikrotik.com/wiki/Use_host_names_in_firewall_rules:</a></noindex> при запуске из CLI получается: /system script&gt; run resolvehostnames failure: dns name does not exist. И проблема возникает здесь, в конце скрипта выше: : if ($newip != $oldip) do={ :set newip [:resolve $comment] /ip firewall address-list set $i address=$newip} }. Пытался запустить этот скрипт как на ROS 5.14, так и на 5.22. Настройка точно такая же, как в вики, должно быть 100% всё в порядке. Есть какие-нибудь идеи? <br />
			<i>14.02.2013 14:30:00, manssebas.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280957</link>
			<guid>http://mikrotik.moscow/forum/forum57/70686-reshay-problemy./message280957</guid>
			<pubDate>Thu, 14 Feb 2013 14:30:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
