<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; HTA: OstroSoft Winsock Component]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=8410</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=8410&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «HTA: OstroSoft Winsock Component».]]></description>
		<lastBuildDate>Wed, 19 Jun 2013 11:10:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[HTA: OstroSoft Winsock Component]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=73108#p73108</link>
			<description><![CDATA[<p>&quot;<a href="http://www.ostrosoft.com/oswinsck.asp">OstroSoft Winsock Component</a>&quot; - ActiveX для работы с Winsock.<br />Отечественный, бесплатный для использования в некоммерческих приложениях. Небольшого размера. Корректно работает с JavaScript.<br /><a href="http://www.ostrosoft.com/download/oswinsck.zip">По ссылке скачивается zip</a> с документацией и примерами использования на VBS, JS, и других языках.<br />Программный доступ к Winsock открывает нам широчайшие возможности для построения самых разнообразных приложений использующих протокол TCP/IP.<br />В примерах приведена процедура загрузки web-страницы по протоколу http. Таким же макаром можно загружать файлы по ftp. Один умелец сочинил <a href="http://admin-scripting.blogspot.ru/2009/09/web-jscript-wsh.html">web-сервер на JS</a>. Так же можно реализовать Telnet-сервер или клиента. Или, например, сочинить сетевой чат. Все зависит от вашей фантазии.</p><p><strong>Пример загрузки html кода веб-страницы:</strong></p><div class="codebox"><pre><code>&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=content-type content=&quot;text-html; charset=utf-8&quot;&gt;
&lt;meta http-equiv=MSThemeCompatible content=yes&gt;
&lt;hta:application
    innerBorder=no
    scroll=no
    selection=no
    contextMenu=no
    singleinstance=yes
&gt;
&lt;title&gt;Get Page with OstroSoft Winsock component&lt;/title&gt;
&lt;object id=&quot;oWinsock&quot; style=&quot;display:none;&quot; classid=&quot;CLSID:37F9EE2B-98A7-49D7-B505-94DFCE7FAC60&quot;&gt;&lt;/object&gt;
&lt;script for=&quot;oWinsock&quot; event=&quot;OnConnect()&quot; type=&quot;text/javascript&quot;&gt;
    oWinsock.SendData(&#039;GET /&#039; + sPage + &#039; HTTP/1.0\r\nHost: &#039; + sHost + &#039;\r\nAccept: text/html\r\n\r\n&#039;);
&lt;/script&gt;
&lt;script for=&quot;oWinsock&quot; event=&quot;OnError(Number, Description, Scode, Source, HelpFile, HelpContext, CancelDisplay)&quot; type=&quot;text/javascript&quot;&gt;
    alert(Number + &#039;: &#039; + Description);
&lt;/script&gt;
&lt;script for=&quot;oWinsock&quot; event=&quot;OnDataArrival(bytesTotal)&quot; type=&quot;text/javascript&quot;&gt;
    idSource.insertAdjacentText(&#039;BeforeEnd&#039;, oWinsock.GetDataBuffer());
    oWinsock.CloseWinsock();
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;

var sPage = &#039;&#039;;
var sHost = &#039;&#039;;

function Connect(){
    idSource.innerText = &quot;&quot;;
    if (/^(\w+?:\/\/)*([^\/:]+):*(\d*)\/*(.*?)$/.test(idURL.value)) {
        sHost = RegExp.$2;
        var nPort = RegExp.$3 || 80;
        sPage = RegExp.$4;

        alert(&quot;Host:\t&quot; + sHost + &quot;\nPort:\t&quot; + nPort + &quot;\nPage:\t&quot; + sPage);
        oWinsock.Connect(sHost, nPort);
    } else {
        alert(&quot;Invalid URL&quot;);
    }
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body style=&quot;background-color:threedface;&quot;&gt;
    &lt;table style=&quot;width:100%; height:100%&quot;&gt;
        &lt;tr&gt;
            &lt;td style=&quot;width:100%;&quot;&gt;&lt;input id=&quot;idURL&quot; type=&quot;text&quot; value=&quot;http://www.ostrosoft.com/oswinsck.asp&quot; style=&quot;width:100%;&quot;&gt;&lt;/td&gt;
            &lt;td&gt;&lt;input type=button onClick=&quot;Connect()&quot; value=GetPage hidefocus&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style=&quot;height:100%&quot;&gt;
            &lt;td colspan=&quot;2&quot;&gt;&lt;textarea id=&quot;idSource&quot; style=&quot;width:100%; height:100%&quot;&gt;&lt;/textarea&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/table&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></div><p><strong>Пример сканера открытых портов на локальном или удаленном ПК:</strong></p><div class="codebox"><pre><code>&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=content-type content=&quot;text-html; charset=utf-8&quot;&gt;
&lt;meta http-equiv=MSThemeCompatible content=yes&gt;
&lt;hta:application
    innerBorder=no
    scroll=no
    selection=no
    contextMenu=no
    singleinstance=yes
&gt;
&lt;title&gt;Ports Scanner&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
    window.resizeTo(280, 380);

    var aPorts = [21,22,23,25,80,110,139,143,445,1433,1521,3306,3389,5631,5900];
    var i = 0;

    function CheckNextPort(){
        if (i &lt; aPorts.length){
            var nPort = aPorts[i];
            Logging(nPort + &#039;\t&#039;);
            oWinsock.Connect(idHost.value, nPort);
            i++;
        }
    }

    function Logging(text){
        idLog.insertAdjacentText(&#039;BeforeEnd&#039;, text);
    }
&lt;/script&gt;
&lt;/head&gt;
&lt;body style=&quot;background-color:threedface;&quot;&gt;
    &lt;table style=&quot;width:100%; height:100%&quot;&gt;
        &lt;tr&gt;
            &lt;td&gt;Host:&lt;/td&gt;
            &lt;td style=&quot;width:100%;&quot;&gt;&lt;input id=&quot;idHost&quot; type=&quot;text&quot; value=&quot;127.0.0.1&quot; style=&quot;width:100%;&quot;&gt;&lt;/td&gt;
            &lt;td&gt;&lt;input type=button onClick=&quot;idLog.innerText=&#039;&#039;; CheckNextPort()&quot; value=CheckPorts hidefocus&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style=&quot;height:100%&quot;&gt;
            &lt;td colspan=&quot;3&quot;&gt;&lt;textarea id=&quot;idLog&quot; style=&quot;width:100%; height:100%&quot;&gt;&lt;/textarea&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/table&gt;
&lt;/body&gt;
&lt;object id=&quot;oWinsock&quot; style=&quot;display:none;&quot; classid=&quot;CLSID:37F9EE2B-98A7-49D7-B505-94DFCE7FAC60&quot;&gt;&lt;/object&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
    function oWinsock::OnConnect(){
        oWinsock.CloseWinsock();
    }

    function oWinsock::OnError(){
        Logging(&#039;CLOSE\n&#039;);
        CheckNextPort();
    }

    function oWinsock::OnClose(){
        Logging(&#039;OPEN\n&#039;);
        CheckNextPort();
    }
&lt;/script&gt;
&lt;/html&gt;</code></pre></div><p>Обсудить компонент и решения можно <a href="http://forum.script-coding.com/viewtopic.php?id=8388">тут</a>.</p>]]></description>
			<author><![CDATA[null@example.com (mozers)]]></author>
			<pubDate>Wed, 19 Jun 2013 11:10:57 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=73108#p73108</guid>
		</item>
	</channel>
</rss>
