Тема: VBScript: Мониторинг открытых потров TCP/UDP
Подскажите пожалуйста как средствами WMI мониторить открытые сетевые порты. Какой класс WMI использовать?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Серый форум → Общение → Windows Script Host, HTA (VBScript, JScript) → VBScript: Мониторинг открытых потров TCP/UDP
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Подскажите пожалуйста как средствами WMI мониторить открытые сетевые порты. Какой класс WMI использовать?
Можно без WMI - запускать скажем консольный TCPVIEW, скидывать инфо в файл и разбирать что он там насобирал.
ИМХО
Порты можно еще проверять циклическим запуском внешней команды "netsh diag connect iphost" с указанием адреса и порта с последующим разбором ответа. Реализовать имхо просто, но на закрытых портах будут ощутимые задержки.
Порты можно еще проверять циклическим запуском внешней команды "netsh diag connect iphost" с указанием адреса и порта с последующим разбором ответа. Реализовать имхо просто, но на закрытых портах будут ощутимые задержки.
Спасибо, это разумный вариант, зависшие можно прибивать по таймауту, попробую.
Можно использовать Winsock, но есть проблема лицензирования на клиентах без VB & Stuidio (...). Несовсем понятен этап с лицензированием Microsoft Winsock Control. Может кто нибудь пояснить?
Option Explicit
If WScript.Arguments.Count<>1 Then
Wscript.Echo "обязательный параметр : Удаленный Хост / IP"
WScript.Quit
End If
Dim K,P
If right(Ucase(WScript.FullName),11)="WSCRIPT.EXE" Then
Set K=CreateObject("WScript.Shell")
K.Run K.ExpandEnvironmentStrings("%COMSPEC%") & " /C cscript.exe """ & WScript.ScriptFullName & """ " & WScript.Arguments(0),1,False
Set K=Nothing
WScript.Quit
End If
Set K=I()
L "Сканирование портов запущено на " & K.LocalHostName & " (" & K.LocalIP & ")"
K.RemoteHost=WScript.Arguments(0)
For P=25 To 111
K.RemotePort=P
K.Connect
While K.State<>0
wscript.sleep 90
Wend
Next
L "Финиш!"
Function I()
On Error Resume Next
Err.Number=0
Set I=WScript.CreateObject("MSWinsock.Winsock","s_")
Select Case Err.Number
Case 0
case &H80040112
L "нет лицензии, нужно добавить в реестр значение для регистрации винсок: " &_
"http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvcs/thread/8dd70eb9-b377-4ef6-b75d-a0fc0e9a9b5e"
case &H80020009
L "ActiveX Winsock не зарегестрирован - юзай regsvr32"
Case else
L "Error " & Err.Number & " - &H" & Hex(Err.Number) & " - " & Err.Description
End Select
End Function
Sub L(S):WScript.Echo S:End Sub
Sub s_Connect
K.Close
L "порт " & P & " Открыт !"
End Sub
Sub s_Error(ByVal N,D,c,S,F,H,A)
K.Close
If N=10061 Then
WScript.StdOut.Write "."
Else
L P & ":" & N & " " & D
End If
End Subnetstat -a
netstat -anЭти команды разве не помогут?
Несовсем понятен этап с лицензированием Microsoft Winsock Control. Может кто нибудь пояснить?
Попробуйте посмотреть здесь.
Коллеги, приветствую !
Отличное исполнение сканера портов, если у кого-нибкдь есть возможность и время, то предлагаю доработать следующее...
1) Реализовать данное в виде HTA
2) вынести в настройки начало и конец диапазона сканируемых портов
3) визуально отражать номера открытых портов
4) Если есть возможность - не выжыдать окончание таймаута закрытых портов, закрывать раньше... (может кто-нить вообще сумеет данное реализовать асинхронно ?!?!)
Ещё затейка !!!
Тоже HTA'шная !!!
Сделать типа такого разговорника, как бы это правильно сказать.... ну то есть как общение по протоколу POP3, чтобы можно было вводить команды, и видеть что узел тебе отвечает, т.е. такой интерактивный сниффер, у которого бы в настройках было:
1) выбор узла с которым общаться
2) выбор порта
3) окно для ввода команд (в виде TEXTAREA)
4) окно для вывода ответа (в виде TEXTAREA)
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться