<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; HTA: DNS Toolz]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=2267</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=2267&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «HTA: DNS Toolz».]]></description>
		<lastBuildDate>Thu, 25 Sep 2008 07:28:19 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[HTA: DNS Toolz]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=14279#p14279</link>
			<description><![CDATA[<p>Графическая оболочка для nslookup, для удобной работы с DNS.<br /></p><div class="codebox"><pre><code>&lt;HTML&gt;&lt;HEAD&gt;
&lt;TITLE&gt;DNS Toolz (null)&lt;/TITLE&gt;
&lt;META content=JavaScript name=vs_defaultClientScript&gt;
&lt;META http-equiv=Content-Type content=&quot;text/html; charset=windows-1251&quot;&gt;

&lt;hta:application id=&quot;DNS Toolz&quot;
  applicationname=&quot;DNS Toolz&quot;
  border=&quot;thick&quot;
  borderstyle=&quot;normal&quot;
  caption=&quot;yes&quot;
  contextmenu=&quot;yes&quot;
  innerborder=&quot;yes&quot;
  maximizebutton=&quot;yes&quot;
  minimizebutton=&quot;yes&quot;
  navigable=&quot;no&quot;
  scroll=&quot;auto&quot;
  scrollflat=&quot;no&quot;
  selection=&quot;no&quot;
  showintaskbar=&quot;yes&quot;
  singleinstance=&quot;yes&quot;
  sysmenu=&quot;yes&quot;
  version=&quot;1.0&quot;
  windowstate=&quot;normal&quot;
/&gt;
&lt;style type=&quot;text/css&quot;&gt;
  body { margin:0; background:#eee }
  body * { font:9pt/11pt Verdana; color:#005 }
  td { background:#eee; padding:0.1em; text-indent:0.1em }
  td.number { width:2.5em; text-align:center; text-indent:0 }
  td.date { width:5.5em; text-align:center; text-indent:0 }
  
  
  body { font-family: verdana, sans-serif; font-size:13px; }
  a.help { text-decoration:none;}
  a.help span { display:none;}
  a.help:hover { position:relative; }
  a.help:hover span { position:absolute; display:block; left:10px; top:-15px;
  border:solid 1px #000; background:#ddd; color:#000; white-space:pre; padding:1px;}

&lt;/style&gt;

&lt;SCRIPT language=javascript&gt;
  &lt;!-- скрыть скрипт от браузеров не поддерживающих их
  var WshShell = new ActiveXObject(&quot;WScript.Shell&quot;);
  
  function resize()    // изменение размера окна к приемлемому виду
  {
    window.window.resizeTo(900,500);
  }
  function Run(CommandString)  // запуск программ
  {
    WshShell.Run(CommandString,1);  
  }
  
  function CheckDnsQuery() // функция проверки правильности введенных данных, 
  //возращает 1 - если всё правильно, 0 - если есть ошибки, 2 - если задан dns сервер 
  {
      if (DnsRecord.value == &quot;&quot;) 
        {
          alert (&quot;Введите имя домена или IP адрес, информацию о котором вы хотите получить&quot;);
          return 0;
        }
      if (DnsServerName.value != &quot;&quot;)
      {
        if (DnsServerName.value == &quot; &quot;)
        {
          alert (&quot;Вы ввели в качестве имени сервера пустое значение&quot;);
          return 0;
        }
        else
        {
          return 2; // возращаем 2 если задано имя dns сервера 
        }
      }
      if (DnsServerName.value == &quot;&quot;)
      {
        return 1;
      }
    }
    
  function Get()
  {
    switch(action.value)
    {
      case &quot;Record&quot;:
           DnsQuery();
           break;
      case &quot;Zone&quot;:
           DnsQueryZone();
           break;
    }
  }
  
  function DnsQuery()  // dns запрос
  {
    check = CheckDnsQuery();
    if ( (check == 1) | (check ==2)) // проверяем данные введенные в поля для ввода адреса и сервера 
    {
      WshExec  = WshShell.Exec(&quot;nslookup.exe&quot;);
      if (check == 2)                        //если был задан dns сервер то используем его
      {
        WshExec.StdIn.WriteLine (&quot;server &quot;+DnsServerName.value);  
      }
      //dsgjkyztv запрос
      WshExec.StdIn.WriteLine (&quot;set q=&quot;+DnsType.value);
      WshExec.StdIn.WriteLine (DnsRecord.value);
      WshExec.StdIn.WriteLine(&quot;exit&quot;);
      NsLookupResult=&quot;&quot;;
      NsLookupResult = WshExec.StdOut.ReadAll();
      NsLookupResult = NsLookupResult+WshExec.StdErr.ReadAll();
      //записываем полученные данные в текстовое поле
      resultat.innerText=&quot;&quot;;
      resultat.innerText=NsLookupResult;
      WshExec.Terminate();
    }
        
  }  
  
  function DiapazonIP()  //функция для сканирования диапазона ип адресов
  {
    var WshExec;
    var NsLookupResult=&quot;&quot;;
    var DnsResult=&quot;&quot;;
    resultat.innerText=&quot;&quot;; 
    var increment=1;
    var code=event.keyCode;
    
    for (i=parseInt(BeginIP3.value);i&lt;=parseInt(EndIP3.value);i++)
    {      
      WshExec  = WshShell.Exec(&quot;nslookup.exe&quot;);
      WshExec.StdIn.WriteLine (&quot;set q=a&quot;);
      for(j=parseInt(BeginIP4.value);j&lt;=parseInt(EndIP4.value);j++)
      {
        ip=BeginIP1.value+&quot;.&quot;+BeginIP2.value+&quot;.&quot;+i+&quot;.&quot;+j
        WshExec.StdIn.WriteLine (ip);
        if(code==27){break;}
        Check=increment*30; // 30 - это коэффициент ! если у вас зависает окно консольное значит нужно уменьшить число(коээфициент это сколько запросов будет записано в окно. Если слишком много записать в одно окно то по ходу дела у StdOut не хватает буфера для данных и консольнок окошко зависает
        if(j&gt;=Check)
        {
          //alert(&quot;if begin j=&quot;+j+&quot; increment=&quot;+increment+&quot;i= &quot; +i);
          increment++;
          WshExec.StdIn.WriteLine(&quot;exit&quot;);
          WshExec.StdErr.ReadAll();
          while (!WshExec.StdOut.AtEndOfStream)
          {
            NsLookupResult=WshExec.StdOut.ReadLine();
            if (NsLookupResult.substr(0,4) == &quot;Name&quot;)
            {
            DnsResult=DnsResult+NsLookupResult+&quot;\n&quot;;
            NsLookupResult=WshExec.StdOut.ReadLine();
            DnsResult=DnsResult+NsLookupResult+&quot;\n\n&quot;;
            }
          }
          try {WshExec.Terminate();} catch(err) {alert(&quot;Ошибка завершения nslookup!\nНомер ошибки &quot;+ err.number+&quot;\nОписание ошибки - &quot;+err.description )};
          WshExec  = WshShell.Exec(&quot;nslookup.exe&quot;);
        }
        else
        {
          if (EndIP4.value - Check &lt; 0)
          {
            j++;
            while(j&lt;EndIP4.value)
            {
              ip=BeginIP1.value+&quot;.&quot;+BeginIP2.value+&quot;.&quot;+i+&quot;.&quot;+j
              WshExec.StdIn.WriteLine (ip);
              j++;
            }
            WshExec.StdIn.WriteLine(&quot;exit&quot;);
            WshExec.StdErr.ReadAll();
            while (!WshExec.StdOut.AtEndOfStream)
            {
              NsLookupResult=WshExec.StdOut.ReadLine();
              if (NsLookupResult.substr(0,4) == &quot;Name&quot;)
              {
                DnsResult=DnsResult+NsLookupResult+&quot;\n&quot;;
                NsLookupResult=WshExec.StdOut.ReadLine();
                DnsResult=DnsResult+NsLookupResult+&quot;\n\n&quot;;
              }
            }
          increment=1; // перед переходом на новый цикл скидываем переменную
          try {WshExec.Terminate();} catch(err) {alert(&quot;Ошибка завершения nslookup!\nНомер ошибки &quot;+ err.number+&quot;\nОписание ошибки - &quot;+err.description )};
          }
        }
      }
    }
    try {WshExec.Terminate();} catch(err) {alert(&quot;Ошибка завершения nslookup!\nНомер ошибки &quot;+ err.number+&quot;\nОписание ошибки - &quot;+err.description )};
    resultat.innerText=resultat.innerText+DnsResult;
    alert(&quot;enjoy :)&quot;);
  }
  function DnsQueryZone()
  {
    var arrNS= new Array();
    var check = CheckDnsQuery();
    var NsLookupResult=&quot;&quot;;
    var NsServers=&quot;\nОпрошенные сервера имён:&quot;
    if ( check == 1)
    {
      WshExec  = WshShell.Exec(&quot;nslookup.exe&quot;);
      
      WshExec.StdIn.WriteLine (&quot;set q=ns&quot;);
      WshExec.StdIn.WriteLine(DnsRecord.value);
      WshExec.StdIn.WriteLine(&quot;exit&quot;);
      // в цикле получаем массив ns серверов 
      i=0;
      while (!WshExec.StdOut.AtEndOfStream)
      {
        NsLookupResult=WshExec.StdOut.ReadLine();
        result=NsLookupResult.indexOf(&quot;internet address =&quot;);
        if(result != -1 )
        {
          arrNS[i]=NsLookupResult.substring(result+18); // получаем имя ns сервера
          NsServers=NsServers+&quot;\n&quot;+arrNS[i];
          i++;
        }
      }
      
      for(i=0;i&lt;arrNS.length;i++)
      {
        WshExec  = WshShell.Exec(&quot;nslookup.exe&quot;);
        WshExec.StdIn.WriteLine (&quot;server &quot;+arrNS[i]);
        WshExec.StdIn.WriteLine (&quot;ls -t &quot;+DnsType.value+&quot; &quot;+DnsRecord.value);
        WshExec.StdIn.WriteLine(&quot;exit&quot;); 
        NsLookupResult=WshExec.StdOut.ReadAll();
        NsLookupResultErr = WshExec.StdErr.ReadAll();
        if (NsLookupResultErr == &quot;&quot;)
        {
          resultat.innerText=&quot;&quot;;
          resultat.innerText=NsLookupResult;
          break;
        }
      }
      if (NsLookupResultErr != &quot;&quot;)
      {
        resultat.innerText=&quot;&quot;;
        resultat.innerText=&quot;Не удалось получить DNS зону домена &quot;+DnsRecord.value+&quot; &quot;+NsServers;
      }
    }
  }
  
  function IPCheck()
  {
   flag=0;
   if ((BeginIP1.value&gt;255))
   {
     BeginIP1.value=&quot;&quot;;
     BeginIP1.focus();
     alert (&quot;Недоустимая часть IP адреса! Число не должно быть больше 255&quot;);
   }
   if ((BeginIP2.value&gt;255))
   {
     BeginIP2.value=&quot;&quot;;
     BeginIP2.focus();
     alert (&quot;Недоустимая часть IP адреса! Число не должно быть больше 255&quot;);
   }
   if ((BeginIP3.value&gt;255))
   {
     BeginIP3.value=&quot;&quot;;
     BeginIP3.focus();
     alert (&quot;Недоустимая часть IP адреса! Число не должно быть больше 255&quot;);
   }
   if ((BeginIP4.value&gt;255))
   {
     BeginIP4.value=&quot;&quot;;
     BeginIP4.focus();
     alert (&quot;Недоустимая часть IP адреса! Число не должно быть больше 255&quot;);
   }
   if ((EndIP3.value&gt;255))
   {
     EndIP3.value=&quot;&quot;;
     EndIP3.focus();
     alert (&quot;Недоустимая часть IP адреса! Число не должно быть больше 255&quot;);
   }
   if ((EndIP4.value&gt;255))
   {
     EndIP4.value=&quot;&quot;;
     EndIP4.focus();
     alert (&quot;Недоустимая часть IP адреса! Число не должно быть больше 255&quot;);
   }
 } 
  
  function keyDown()
  {
    var code=event.keyCode;
    switch(code) 
    {
      case 112:
           alert(&quot;DNS TOOLZ&quot;);
           break;
    }
  }
  
  --&gt;
&lt;/SCRIPT&gt;
&lt;/HEAD&gt;
&lt;BODY bgColor=silver onload=&#039;resize()&#039; onkeydown=&quot;keyDown()&quot;&gt;
&lt;h1 align=center&gt; DNS toolz &lt;hr width=&quot;95%&quot;&gt; &lt;/h1&gt;

&lt;TABLE width=&quot;100%&quot; align=center border=0&gt;                                &lt;!-- главная таблица --&gt;
  &lt;TR&gt;
    &lt;TD valign=top&gt;
      &lt;table align=center border=0 width=&quot;95%&quot;&gt;
        &lt;tr&gt;
          &lt;td align=middle valign=top&gt;
          &lt;table align=center border=0&gt;
            &lt;tr&gt;
              &lt;td align=left&gt;Получить&lt;/td&gt;
              &lt;td align=left&gt;
              &lt;select id=&#039;action&#039; name=&#039;action&#039;&gt; 
              &lt;option value=&#039;Record&#039; selected&gt;DNS запись &lt;/option&gt;
              &lt;option value=&#039;Zone&#039;&gt;DNS Зону&lt;/option&gt;
              &lt;/select&gt;
              &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td align=left&gt;Тип записи&lt;/td&gt;
              &lt;td align=left&gt;
              &lt;select id=DnsType&gt; 
              &lt;option value=&#039;ANY&#039; selected&gt;  ANY(Все типы)&lt;/option&gt;
              &lt;option value=&#039;A&#039;&gt;    A (IP-адрес)   &lt;/option&gt;
              &lt;option value=&#039;NS&#039;&gt;   NS (Сервер имен)     &lt;/option&gt;
              &lt;option value=&#039;MX&#039;&gt;   MX (Почт.обменник)    &lt;/option&gt;
              &lt;option value=&#039;MB&#039;&gt;   MB(Имя домена П.Я)       &lt;/option&gt;
              &lt;option value=&#039;MG&#039;&gt;   MG (Член почт. гр.)    &lt;/option&gt;
              &lt;option value=&#039;MINFO&#039;&gt;MINFO (инф. о П.Я)        &lt;/option&gt;
              &lt;option value=&#039;MR&#039;&gt;   MR(MailRename)  &lt;/option&gt;
              &lt;option value=&#039;PTR&#039;&gt;  PTR (Pointer)             &lt;/option&gt; 
              &lt;option value=&#039;SOA&#039;&gt;  SOA (Нач. запись)    &lt;/option&gt; 
              &lt;option value=&#039;CNAME&#039;&gt;CNAME (Канон. имя)      &lt;/option&gt; 
              &lt;option value=&#039;TXT&#039;&gt;  TXT (текст-я инф-я)     &lt;/option&gt; 
              &lt;option value=&#039;HINFO&#039;&gt;HINFO (Проц и ОС)    &lt;/option&gt; 
              &lt;option value=&#039;GID&#039;&gt;  GID (ИД группы) &lt;/option&gt; 
              &lt;option value=&#039;UID&#039;&gt;  UID (ИД юзера) &lt;/option&gt; 
              &lt;option value=&#039;UINFO&#039;&gt;UINFO (Юзер инфо) &lt;/option&gt; 
              &lt;option value=&#039;WKS&#039;&gt;  WKS (Службы сети) &lt;/option&gt; 
              &lt;/select&gt;
              &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td align=left&gt;Имя или IP &lt;/td&gt;
              &lt;td align=left&gt;&lt;input type=text id=DnsRecord size=23 maxlength=100&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td align=left&gt;&lt;a href=&quot;#&quot; class=&quot;help&quot;&gt;DNS Сервер&lt;span&gt; Укажите Dns сервер с которым вы собираетесь работать, если не хотите использовать ваш dns сервер&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td align=left&gt;&lt;input type=text id=DnsServerName size=23&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
            &lt;td&gt;&lt;/td&gt;
            &lt;td&gt;&lt;INPUT id=GetButton onclick=Get() type=button value=выполнить name=DnsQueryButton&gt; &lt;/td&gt;
            
            &lt;/tr&gt;
            
            &lt;tr&gt;
              
              &lt;td align=middle colspan=2&gt;&lt;hr&gt;Сканировать Диапазон IP&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td align=left&gt;Начальный IP&lt;/td&gt;
              &lt;td align=right&gt;&lt;input type=text id=&#039;BeginIP1&#039; size=3 maxlength=3 value=212 onblur=&#039;IPCheck()&#039;&gt;&lt;input type=text id=BeginIP2 size=3 maxlength=3 onblur=&#039;IPCheck()&#039; value=176&gt;&lt;input type=text id=BeginIP3 onblur=&#039;IPCheck()&#039; size=3 maxlength=3  value=53&gt;&lt;input type=text id=BeginIP4 size=3 maxlength=3 onblur=&#039;IPCheck()&#039; value=1&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td align=left&gt;Конечный IP&lt;/td&gt;
              &lt;td align=right&gt;&lt;input type=text id=EndIP3 size=3 maxlength=3 onblur=&#039;IPCheck()&#039; value=53&gt;&lt;input type=text id=EndIP4 size=3 maxlength=3 onblur=&#039;IPCheck()&#039; value=3&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
            &lt;td&gt;&lt;/td&gt;
            &lt;td&gt;&lt;INPUT id=Button1 onclick=DiapazonIP() type=button value=выполнить name=DiapazonIPButton&gt; &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;&lt;td colspan=2 height=70 valign=top&gt;&lt;hr width=&quot;95%&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
            
            &lt;tr&gt;&lt;td colspan=2 align=middle&gt;&lt;input type=button value=&#039;NsLookup(справка)&#039; onclick=&#039;Run(&quot;hh ntcmds.chm::/nslookup__subcommands.htm&quot;)&#039;&gt;&lt;/td&gt;&lt;/tr&gt;
      &lt;/table&gt;
    &lt;/td&gt;
    
    &lt;TD&gt; &lt;center&gt;&lt;textarea id=resultat name=resultat rows=25 cols=95&gt;&lt;/textarea&gt; &lt;/center&gt;&lt;/TD&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;

&lt;/BODY&gt;
&lt;/HTML&gt;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (null)]]></author>
			<pubDate>Thu, 25 Sep 2008 07:28:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=14279#p14279</guid>
		</item>
	</channel>
</rss>
