<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: API Bug ?]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме API Bug ? форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 20 Aug 2026 13:44:12 -0400</pubDate>
		<item>
			<title>API Bug ?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/57349-api-bug/message215938">API Bug ?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я думал, ты никогда не спросишь. С любым клиентом нужно отправлять запрос с запросом печати, чтобы получить ID, и передавать его в команду удаления. Думаю, это сделать проще с моим клиентом, но я предвзятый. Вот пример:<br /><br />```php<br />namespace PEAR2\Net\RouterOS;<br />require_once 'PEAR2_Net_RouterOS-1.0.0b3.phar';<br /><br />$client = new Client('192.168.1.50', 'xxxx', 'xxxx');<br /><br />$id = $client-&gt;sendSync(<br /> &nbsp; &nbsp;new Request('/ip hotspot host print .proplist=.id', Query::where('mac-address', '00:00:00:00:00:01'))<br />)-&gt;getArgument('.id');<br />//$id теперь содержит ID записи, которую мы нацеливаем<br /><br />$removeRequest = new Request('/ip/hotspot/host/remove');<br />$removeRequest-&gt;setArgument('numbers', $id);<br />$client-&gt;sendSync($removeRequest);<br /><br />Как есть, он удаляет только первое совпадение. С небольшими изменениями, ты можешь сделать так, чтобы он удалял все совпадения. Код можно сократить ещё сильнее (особенно если у тебя PHP 5.4), но я оставил его более подробным, чтобы ты понимал, что происходит. Смотри эту страницу для большего количества примеров.<br />``` <br />
			<i>21.08.2012 15:07:00, boen_robot.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/57349-api-bug/message215938</link>
			<guid>http://mikrotik.moscow/forum/forum57/57349-api-bug/message215938</guid>
			<pubDate>Tue, 21 Aug 2012 15:07:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>API Bug ?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/57349-api-bug/message215937">API Bug ?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			&lt;?php<br /><br />require('api.class.php');<br /><br />$API = new routeros_api();<br /><br />$API-&gt;debug = false;<br /><br />if ($API-&gt;connect('192.168.1.50', 'xxxx', 'xxxx')) {<br /><br />$API-&gt;write('/ip/hotspot/host/remove', false);<br />$API-&gt;write('=numbers=*8');<br /><br />$READ = $API-&gt;read(false);<br />$ARRAY = $API-&gt;parse_response($READ);<br /><br />print_r($ARRAY);<br /><br />$API-&gt;disconnect();<br /><br />} Отлично, сработало прекрасно! Следующий вопрос: возможно ли сделать это по MAC-адресу? С вашим клиентом было бы проще удалить сессию на основе MAC-адреса пользователя? <br />
			<i>21.08.2012 13:39:00, rubessw.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/57349-api-bug/message215937</link>
			<guid>http://mikrotik.moscow/forum/forum57/57349-api-bug/message215937</guid>
			<pubDate>Tue, 21 Aug 2012 13:39:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>API Bug ?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/57349-api-bug/message215936">API Bug ?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			С этим клиентом нужно явно указать, что ты не готов отправить предложение, используя `false` в качестве второго аргумента для `write()`. Попробуй так:<br /><br />```php<br />require('api.class.php');<br /><br />$API = new routeros_api();<br /><br />$API-&gt;debug = false;<br /><br />if ($API-&gt;connect('192.168.1.50', 'xxxx', 'xxxx')) {<br /><br /> $API-&gt;write('/ip/hotspot/host/remove', false);<br /> $API-&gt;write('=numbers=*8');<br /><br /> $READ = $API-&gt;read(false);<br /> $ARRAY = $API-&gt;parse_response($READ);<br /><br /> print_r($ARRAY);<br /><br /> $API-&gt;disconnect();<br /><br />}<br />```<br />(Также исправил вышеупомянутую синтаксическую ошибку).<br /><br />P.S. Мне бы очень хотелось узнать, что заставило тебя выбрать именно этого клиента, а не другого. <br />
			<i>21.08.2012 12:46:00, boen_robot.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/57349-api-bug/message215936</link>
			<guid>http://mikrotik.moscow/forum/forum57/57349-api-bug/message215936</guid>
			<pubDate>Tue, 21 Aug 2012 12:46:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>API Bug ?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/57349-api-bug/message215935">API Bug ?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Ты случайно не забыл закрывающую одинарную кавычку? <br />
			<i>21.08.2012 12:26:00, rmichael.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/57349-api-bug/message215935</link>
			<guid>http://mikrotik.moscow/forum/forum57/57349-api-bug/message215935</guid>
			<pubDate>Tue, 21 Aug 2012 12:26:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>API Bug ?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/57349-api-bug/message215934">API Bug ?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Пытаюсь запустить команду через API. Делаю это в Mikrotik API studio: `/ip/hotspot/host/remove =numbers=*8`. *8, будучи последней сессией, работает на 100%, даже из терминала работает на 100%, но вот это:<br /><br />```php<br />require('api.class.php');<br /><br />$API = new routeros_api();<br /><br />$API-&gt;debug = false;<br /><br />if ($API-&gt;connect('192.168.1.50', 'xxxx', 'xxxx')) {<br /><br />$API-&gt;write('/ip/hotspot/host/remove');<br />$API-&gt;write('=numbers=*8);<br /><br />$READ = $API-&gt;read(false);<br />$ARRAY = $API-&gt;parse_response($READ);<br /><br />print_r($ARRAY);<br /><br />$API-&gt;disconnect();<br /><br />}<br />```<br /><br />возвращает:<br /><br />```<br />Array ( [!trap] =&gt; Array ( [0] =&gt; Array ( [message] =&gt; no such command prefix ) ) )<br />```<br /><br />Какие идеи? Другие команды работают нормально. <br />
			<i>21.08.2012 12:15:00, rubessw.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/57349-api-bug/message215934</link>
			<guid>http://mikrotik.moscow/forum/forum57/57349-api-bug/message215934</guid>
			<pubDate>Tue, 21 Aug 2012 12:15:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
