<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS: Ошибка 80070002]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=11196</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11196&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS: Ошибка 80070002».]]></description>
		<lastBuildDate>Sun, 03 Jan 2016 07:05:03 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS: Ошибка 80070002]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100123#p100123</link>
			<description><![CDATA[<p>Есть два способа &quot;общения&quot; с роутером:<br /> 1й - через телнет. Твой vbs-cкрипт - одно из самых неудачных решений, использующих этот вариант. Гораздо надежнее использовать специализированные средства, которые предназначены для выполнения на устройстве любой заданной последовательности команд. Тут есть и <a href="http://forum.script-coding.com/viewtopic.php?id=8410">шикарные ActiveX компоненты</a> и <a href="http://firstwiki.ru/index.php/Plink">консольные утилиты</a>. А если мы любим PHP, то для него есть <a href="http://www.geckotribe.com/php-telnet/">свои иструменты</a>, позволяющие выполнять telnet команды напрямую.</p><p> 2й вариант - через веб интерфейс, эмулируя ручное нажатие на кнопку &quot;Reboot&quot;. Эту кнопку можно найти на одной из страниц настроек и, посмотрев ее код, убедится что нажатие на нее экивалентно открытию URL <span style="color: blue">http://&lt;ip&gt;/sys_cfg_valid.xgi?&amp;exeshell=submit%20REBOOT</span>.<br />Вот скрипты 2го типа это и делают - эмулируют вход в веб интерфейс и нажатие на эту кнопку. Насколько точно они это делают (а веб интерфейс порой довольно сильно меняется от каждой новой прошивки) - настолько надежно работают данные скрипты.</p><p>Что я хочу сказать? То, что вариантов решения - масса и каждый может выбрать то, что ему больше подходит.</p>]]></description>
			<author><![CDATA[null@example.com (mozers)]]></author>
			<pubDate>Sun, 03 Jan 2016 07:05:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100123#p100123</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Ошибка 80070002]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100111#p100111</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>http://127.0.0.1/openserver/phpinfo.php</p></blockquote></div><p> выдает что curl включен, но</p><div class="codebox"><pre><code>&lt;?php
$login=&#039;admin&#039;;
$pass=&#039;123123&#039;;
$address=&#039;192.168.0.1&#039;;
$url=&quot;http://$address/login.php&quot;;
$url1=&quot;http://$address/sys_cfg_valid.xgi?&amp;exeshell;=submit%20REBOOT&quot;;
$post=&quot;ACTION_POST=LOGIN&amp;FILECODE;=&amp;VERIFICATION;_CODE=&amp;LOGIN;_USER=$login&amp;LOGIN;_PASSWD=$pass&amp;login;=+%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F+&amp;VER;_CODE=&quot;;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_exec($ch);
curl_close($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_exec($ch);
curl_close($ch);
?&gt;</code></pre></div><p>не работает (создал отдельный php скрипт с этим кодом, запустил его в браузере)<br />а вариант с </p><div class="codebox"><pre><code>http://ip_адрес:порт/sys_cfg_valid.xgi?&amp;exeshell=submit%20REBOOThttp://ip_адрес:порт/sys_cfg_valid.xgi?&amp;exeshell=submit%20REBOOT</code></pre></div><p> подразумевает что надо сначала авторизироваться на странице логина роутера. Т.е. если это делать каждый день, то и авторизацию делать каждый день?</p><p>В принципе, если очевидного решения для </p><div class="codebox"><pre><code>&lt;?php
$login=&#039;admin&#039;;
$pass=&#039;123123&#039;;
............</code></pre></div><p> нету, то меня все устраивает, черное выпрыгивающее окошко не сильно напрягает. Тему можно закрыть. Но буду смотреть тему ближайшие пару дней.</p>]]></description>
			<author><![CDATA[null@example.com (yurri_87)]]></author>
			<pubDate>Sat, 02 Jan 2016 14:56:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100111#p100111</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Ошибка 80070002]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100109#p100109</link>
			<description><![CDATA[<p><strong>mozers</strong><br />WshShell.run &quot;c:\Windows\System32\telnet.exe 192.168.0.1&quot; - не помогло,<br />но помогло копирование telnet.exe в папку с vbs скриптом, либо в папку PHP-5.3</p><p>Способ удовлетворяет, но раз оно возможно, буду пробовать более &quot;пряморукое&quot; решение из вашего поста выше.</p><p>а как использовать </p><div class="codebox"><pre><code>http://ip_адрес:порт/sys_cfg_valid.xgi?&amp;exeshell=submit%20REBOOT</code></pre></div><p>?<br />&lt;div onclick=&quot;window.open(http://ip_адрес:порт/sys_cfg_valid.xgi?&amp;exeshell=submit%20REBOOT,&#039;_blank&#039;);&quot;&gt;reboot&lt;/div&gt;?</p><p>пробую...</p>]]></description>
			<author><![CDATA[null@example.com (yurri_87)]]></author>
			<pubDate>Sat, 02 Jan 2016 14:39:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100109#p100109</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Ошибка 80070002]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100105#p100105</link>
			<description><![CDATA[<p><strong>yurri_87</strong><br />Согласен с твоим другом. Но ты же пишешь про конкретную ошибку в конкретной строке. Она может быть вызвана только тем что файл telnet.exe попросту отсутствует на сервере.<br />Насчет <a href="https://www.google.ru/search?hl=ru&amp;q=%D0%BF%D0%B5%D1%80%D0%B5%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0+dir+300">api для dir 300</a> - ну просто туча альтернативных решений.<br />Вот так <a href="http://welinux.ru/post/3353/">например</a></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>&lt;?php
$login=&#039;логин&#039;;
$pass=&#039;пароль&#039;;
$address=&#039;ip_роутера&#039;;
$url=&quot;http://$address/login.php&quot;;
$url1=&quot;http://$address/sys_cfg_valid.xgi?&amp;exeshell;=submit%20REBOOT&quot;;
$post=&quot;ACTION_POST=LOGIN&amp;FILECODE;=&amp;VERIFICATION;_CODE=&amp;LOGIN;_USER=$login&amp;LOGIN;_PASSWD=$pass&amp;login;=+%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F+&amp;VER;_CODE=&quot;;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_exec($ch);
curl_close($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_exec($ch);
curl_close($ch);
?&gt;
</code></pre></div></div></div><p> или вообще с помощью одного url </p><div class="codebox"><pre><code>http://ip_адрес:порт/sys_cfg_valid.xgi?&amp;exeshell=submit%20REBOOT</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (mozers)]]></author>
			<pubDate>Sat, 02 Jan 2016 14:12:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100105#p100105</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Ошибка 80070002]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100104#p100104</link>
			<description><![CDATA[<p>сегодня друг-программист (на C#) написал: </p><p><em>запускать из пхп вбс скрипт, который запускает телнет и пишет в нем для роутера команды?))) Мне кажется, что это немножк рукоблудие) Почему бы не погуглить про api твоего роутера? Мне кажется, что средствами php скрипт запускается успешно, но от имени пользователя, у которого нет своего рабочего стола и графической оболочки, форточка с телнетом не инициализируется и скриптик, не дождавшись появления форточки, тычет команды вникуда))</em></p><p>... но не предложил нормального решения.<br />api для dir 300, кстати, не смог найти</p>]]></description>
			<author><![CDATA[null@example.com (yurri_87)]]></author>
			<pubDate>Sat, 02 Jan 2016 13:50:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100104#p100104</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Ошибка 80070002]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100102#p100102</link>
			<description><![CDATA[<p><strong>mozers</strong><br />Да, на одном и том-же. Я пробывал полный путь. Ошибка та-же самая.</p>]]></description>
			<author><![CDATA[null@example.com (yurri_87)]]></author>
			<pubDate>Sat, 02 Jan 2016 13:48:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100102#p100102</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Ошибка 80070002]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100100#p100100</link>
			<description><![CDATA[<p><strong>yurri_87</strong><br />Т.е. и сервер с php и vbs скрипт находятся <span class="bbu">на одном и том же</span> компе? И на нем же &quot;по даблклику скрипт работает нормально&quot; ?<br />Тогда я бы попробовал проставить полный путь к telnet.exe.</p>]]></description>
			<author><![CDATA[null@example.com (mozers)]]></author>
			<pubDate>Sat, 02 Jan 2016 12:57:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100100#p100100</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Ошибка 80070002]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100099#p100099</link>
			<description><![CDATA[<p><strong>mozers</strong><br />php запускает vbs с помощью exec:</p><p>&lt;?php<br />$bat_name = $_POST[&quot;bat_name&quot;];<br />exec($bat_name);<br />?&gt;</p><p>Но дело то в том, что по даблклику скрипт работает нормально.<br />А если через exec в php, то ошибку выдает.</p><p>Насколько я понял, exec может запускать как батники, так vbs и другие файлы.<br />В этом плане я не понял в чем разница даблклика и запуска из php.</p><p>Вы считаете, что нужно подгонять команды под консоль php? (может туплю, просто я в этом не разбираюсь).</p>]]></description>
			<author><![CDATA[null@example.com (yurri_87)]]></author>
			<pubDate>Sat, 02 Jan 2016 12:13:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100099#p100099</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Ошибка 80070002]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100096#p100096</link>
			<description><![CDATA[<p><strong>yurri_87</strong><br />Что значит &quot;при запуске из под php&quot;? Каким образом?<br />А ошибка говорит о том, что на той машине где выполняется данный vbs скрипт, файл telnet.exe, не найден.<br />А если в cmd-консоли той машины написать &quot;telnet&quot; что то произойдет?</p>]]></description>
			<author><![CDATA[null@example.com (mozers)]]></author>
			<pubDate>Sat, 02 Jan 2016 07:57:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100096#p100096</guid>
		</item>
		<item>
			<title><![CDATA[VBS: Ошибка 80070002]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100083#p100083</link>
			<description><![CDATA[<p>Здравствуйте! </p><p>Моя проблема в следующем: я создал vbs-скрипт для перезапуска роутера. <br />Скрипт исправно работает, перезагружает роутер. <br />Но при запуске из под php появляется ошибка: </p><p>Сценарий: <br />D:\OpenServer\...\...\...\reboot.vbs <br />Строка: 2 <br />Символ: 1 <br />Ошибка: Не удается найти указанный файл. <br />Код: 80070002 <br />Источник: (null) </p><p>При запуске из под php других скриптов все работает нормально. <br />А этот скрипт - с ошибкой. </p><p>Содержимое скрипта:&nbsp; </p><p>set WshShell = WScript.CreateObject(&quot;WScript.Shell&quot;) <br />WshShell.run&quot;telnet.exe 192.168.0.1&quot; <br />WScript.Sleep 1000 <br />WshShell.SendKeys&quot;admin&quot; <br />WshShell.SendKeys(&quot;{Enter}&quot;) <br />WScript.Sleep 1000 </p><p>&#039;Provide user password <br />WshShell.SendKeys&quot;123123&quot; <br />WshShell.SendKeys(&quot;{Enter}&quot;) <br />WScript.Sleep 1000 </p><p>&#039;Reboot the router <br />WshShell.SendKeys&quot;reboot&quot; <br />WshShell.SendKeys(&quot;{Enter}&quot;) </p><p>WScript.Sleep 1000 </p><p>WshShell.SendKeys&quot;exit&quot; </p><p>В чем может быть загвоздка?</p>]]></description>
			<author><![CDATA[null@example.com (yurri_87)]]></author>
			<pubDate>Fri, 01 Jan 2016 17:23:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100083#p100083</guid>
		</item>
	</channel>
</rss>
