<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Сканер локальной сети, получение IP устройств]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=10953</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10953&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Сканер локальной сети, получение IP устройств».]]></description>
		<lastBuildDate>Fri, 18 Sep 2015 15:08:15 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Сканер локальной сети, получение IP устройств]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97559#p97559</link>
			<description><![CDATA[<p>А в виде чего должна удобная утилита выдавать результат?</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Fri, 18 Sep 2015 15:08:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97559#p97559</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сканер локальной сети, получение IP устройств]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97555#p97555</link>
			<description><![CDATA[<p>Вот здесь лежит пинг функция реализована через DllCall:<br /><a href="http://www.autohotkey.com/board/topic/41127-ping-function-without-pingexe-formerly-a-ping/">http://www.autohotkey.com/board/topic/4 … ly-a-ping/</a><br />Каким образом из структуры которую возвращает ping(...) функция получить время отклика?</p><div class="codebox"><pre><code>res := ping(&quot;192.168.1.101&quot;)            ; ping the selected host
rt := NumGet(res+0, 8, &quot;UInt&quot;)            ; get reply time [ms]
MsgBox, % &quot;`nrt = &quot; rt &quot;_`n&quot; </code></pre></div><p>Этот код возвращает 0 при том что res имеет не нулевое значение и постоянно меняется.</p>]]></description>
			<author><![CDATA[null@example.com (Eduard)]]></author>
			<pubDate>Fri, 18 Sep 2015 14:05:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97555#p97555</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сканер локальной сети, получение IP устройств]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97527#p97527</link>
			<description><![CDATA[<p>Пока что написал такой костыль:<br /></p><div class="codebox"><pre><code>#NoEnv

; check all adress
c:= 100 ; beg value
Loop, 15
{
    Run, % &quot;ping -n 1 -w 100 -l 1 192.168.1.&quot; c++, , hide
    Sleep 15
}
Sleep 200
;~ ExitApp

RunCon(ComSpec, &quot;arp -a&quot;, a)
S:= MatchStr(a, &quot;192.168.1.&quot;)
Loop, parse, S, `n ,`r
{
    if mac:= GetMac(A_LoopField)
        g.= mac &quot;`n&quot;
}
MsgBox, % &quot;s = &quot; s &quot;_`n&quot; &quot;g = &quot; g &quot;_`n&quot;  ; WWatch
ExitApp

GetMac(ByRef Line)
{
    Loop, Parse, Line
        if (A_LoopField = &quot;-&quot;)
        {
            k:= 0, Begp:= p:= A_Index
            While (SubStr(Line, p+= 3, 1) = &quot;-&quot;)
                k++
            if (k = 4) ; 5 in row
                return Substr(Line, Begp - 2,  17)
        }
    return &quot;&quot;
}

MatchStr(Str, ByRef pat){
    Loop, Parse, Str,`n,`r
    {
        if instr(A_LoopField, pat)
            NStr.= A_LoopField &quot;`n&quot;
    }
    return NStr
}
#0::ExitApp
f12::Run, % &quot;C:\Program Files\AutoHotkey\SciTE\SciTE.exe &quot; &quot;&quot;&quot;&quot; A_ScriptFullPath &quot;&quot;&quot;&quot;

RunCon(CmdLine, Input, ByRef Output)
{
    static BufSizeChar := 1024, hParent := 0
    static Show := 0, Flags := 0x101  ; STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW
    static Buf, BufSizeByte, ProcessInfo, StartupInfo, PipeAttribs
    static piSize, siSize, paSize, flOffset, shOffset, ihOffset
    static inOffset, outOffset, errOffset, thrOffset
    If (!hParent) {
        BufSizeByte := A_IsUnicode ? BufSizeChar * 2 : BufSizeChar
        If (A_PtrSize = 8) {
            piSize := 24, siSize := 104, paSize = 24
            flOffset := 60, shOffset := 64, ihOffset := 16
            inOffset := 80, outOffset := 88, errOffset := 96
            thrOffset := 8
        }
        Else {
            piSize := 16, siSize := 68, paSize = 12
            flOffset := 44, shOffset := 48, ihOffset := 8
            inOffset := 56, outOffset := 60, errOffset := 64
            thrOffset := 4
        }
        VarSetCapacity(Buf, BufSizeByte, 0),    VarSetCapacity(ProcessInfo, piSize, 0)
        VarSetCapacity(StartupInfo, siSize, 0), VarSetCapacity(PipeAttribs, paSize, 0)
        NumPut(siSize, StartupInfo, 0, &quot;uint&quot;), NumPut(Flags, StartupInfo, flOffset, &quot;uint&quot;)
        NumPut(Show, StartupInfo, shOffset, &quot;ushort&quot;)
        NumPut(paSize, PipeAttribs, 0, &quot;uint&quot;), NumPut(1, PipeAttribs, ihOffset, &quot;int&quot;)
        hParent := DllCall(&quot;GetCurrentProcess&quot;, &quot;ptr&quot;)
    }
    DllCall(&quot;CreatePipe&quot;, &quot;ptr *&quot;, hRead1_tmp, &quot;ptr *&quot;, hWrite2
                        , &quot;ptr&quot;, &amp;PipeAttribs, &quot;uint&quot;, 0)
    DllCall(&quot;CreatePipe&quot;, &quot;ptr *&quot;, hRead2, &quot;ptr *&quot;, hWrite1_tmp
                        , &quot;ptr&quot;, &amp;PipeAttribs, &quot;uint&quot;, 0)

    NumPut(hRead2,  StartupInfo, inOffset, &quot;ptr&quot;) 
    NumPut(hWrite2, StartupInfo, outOffset, &quot;ptr&quot;)
    NumPut(hWrite2, StartupInfo, errOffset, &quot;ptr&quot;)
    
    DllCall(&quot;DuplicateHandle&quot;, &quot;ptr&quot;, hParent, &quot;ptr&quot;, hRead1_tmp
                             , &quot;ptr&quot;, hParent, &quot;ptr *&quot;, hRead1
                             , &quot;uint&quot;, 0, &quot;uint&quot;, 0
                             , &quot;uint&quot;, 2)    ; DUPLICATE_SAME_ACCESS
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hRead1_tmp)
    DllCall(&quot;DuplicateHandle&quot;, &quot;ptr&quot;, hParent, &quot;ptr&quot;, hWrite1_tmp
                             , &quot;ptr&quot;, hParent, &quot;ptr *&quot;, hWrite1
                             , &quot;uint&quot;, 0, &quot;uint&quot;, 0
                             , &quot;uint&quot;, 2)
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hWrite1_tmp)
    
    DllCall(&quot;ExpandEnvironmentStrings&quot;, &quot;str&quot;, CmdLine, &quot;str&quot;, Buf, &quot;uint&quot;, BufSizeChar)
    CmdLine := Buf
    Ret := DllCall(&quot;CreateProcess&quot;, &quot;ptr&quot;, 0, &quot;str&quot;, CmdLine, &quot;ptr&quot;, 0, &quot;ptr&quot;, 0
                                  , &quot;uint&quot;, 1, &quot;uint&quot;, 0, &quot;ptr&quot;, 0, &quot;ptr&quot;, 0
                                  , &quot;ptr&quot;, &amp;StartupInfo, &quot;ptr&quot;, &amp;ProcessInfo)
    If (!Ret) {
        MsgBox,, %A_ThisFunc%, Не удалось создать процесс.
        Output := &quot;&quot;
        Return 1
    }
    hChild := NumGet(ProcessInfo, 0, &quot;ptr&quot;)
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, NumGet(ProcessInfo, thrOffset, &quot;ptr&quot;))
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hRead2)
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hWrite2)
    If (Input) {
        InLen := StrLen(Input) + 2
        VarSetCapacity(InBuf, InLen, 0)
        StrPut(Input . &quot;`r`n&quot;, &amp;InBuf, &quot;cp866&quot;)
        DllCall(&quot;WriteFile&quot;, &quot;ptr&quot;, hWrite1, &quot;ptr&quot;, &amp;InBuf, &quot;uint&quot;, InLen
                           , &quot;uint *&quot;, BytesWritten, &quot;uint&quot;, 0)
    }
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hWrite1)
    Output := &quot;&quot;
    Loop {
        If not DllCall(&quot;ReadFile&quot;, &quot;ptr&quot;, hRead1, &quot;ptr&quot;, &amp;Buf, &quot;uint&quot;, BufSizeByte
                                 , &quot;uint *&quot;, BytesRead, &quot;uint&quot;, 0)
            Break
        NumPut(0, Buf, BytesRead, &quot;Char&quot;)
        Output .= StrGet(&amp;Buf, &quot;cp866&quot;)
    }
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hRead1)
    DllCall(&quot;GetExitCodeProcess&quot;, &quot;ptr&quot;, hChild, &quot;int *&quot;, ExitCode)
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hChild)
    Return ExitCode
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Eduard)]]></author>
			<pubDate>Wed, 16 Sep 2015 20:56:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97527#p97527</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сканер локальной сети, получение IP устройств]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97526#p97526</link>
			<description><![CDATA[<p>Необходима утилита желательно без GUI, что нибудь миниатюрное с консольным интерфейсом – мне же необходимо использовать найденные IP в скрипте.</p>]]></description>
			<author><![CDATA[null@example.com (Eduard)]]></author>
			<pubDate>Wed, 16 Sep 2015 20:05:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97526#p97526</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сканер локальной сети, получение IP устройств]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97525#p97525</link>
			<description><![CDATA[<p>Утилит по-любому много есть удобных. <a href="http://lantricks.ru/">Пример</a>.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Wed, 16 Sep 2015 19:47:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97525#p97525</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Сканер локальной сети, получение IP устройств]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97521#p97521</link>
			<description><![CDATA[<p>Интересуюсь быстрым методом получения IP всех устройств, что находятся в локальной сети. Может кто нибудь писал подобный скрипт или знает удобную утилиту?</p>]]></description>
			<author><![CDATA[null@example.com (Eduard)]]></author>
			<pubDate>Wed, 16 Sep 2015 17:38:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97521#p97521</guid>
		</item>
	</channel>
</rss>
