1

Тема: VBS: WMI аналог "netstat -ano"

Добрый день.
Искал в интернетах и зашёл в тупик.
Изначальная задача - найти IP сервера, зная, PID процесса, который к нему подключен.

В данный момент это реализовано таким образом


Function GetFBDServerIP(Pid)

  fIP = ""

  Set shExec = WshShell.Exec("cmd /c netstat -ano|Find "":3050""|Find """ & Pid & """")

  While (Not shExec.StdOut.AtEndOfStream) And fIP = ""

    Str = shExec.StdOut.ReadLine()
    If Right(Str, Len(Pid)) = Pid & "" Then
      SplitStr = Split(Str, " ")
      i = 0 

      While i < UBound(SplitStr) And fIP = ""

        If InStr(SplitStr(i), ":3050") <> 0 Then fIP = Replace(SplitStr(i), ":3050", "")
        i = i + 1

      WEnd

    End If

  WEnd

  GetFBDServerIP = fIP

End Function

Прошу не судить за код строго, я считаю его времянкой, пока не найду более удачного решения.
В этой реализации смущает чёрное окно командной строки, появляющееся на мгновение.

"Единство,- возвестил оракул наших дней: -
Быть может спаяно железом лишь и кровью"…
Но мы попробуем спаять его любовью,-
А там увидим, что прочней…    (Ф. Тютчев)       Тут хорошая справка по vbs.

2

Re: VBS: WMI аналог "netstat -ano"

MikeSh пишет:

В этой реализации смущает чёрное окно командной строки, появляющееся на мгновение.

Пример обхода.

3

Re: VBS: WMI аналог "netstat -ano"

Не, ну как бы да, конечно...
Окошко уберётся...
Подумаю, может изменю времянку.
Спасибо.
Но изначальный вопрос остаётся открытым.

"Единство,- возвестил оракул наших дней: -
Быть может спаяно железом лишь и кровью"…
Но мы попробуем спаять его любовью,-
А там увидим, что прочней…    (Ф. Тютчев)       Тут хорошая справка по vbs.