检查TCP端口是否已连接/建立?

时间:2015-12-23 17:42:08

标签: tcp vbscript

我想要做的是指定几个端口然后检查它们以查看是否存在已建立的连接。我找到了以下脚本并运行但它只列出了3个端口,我不明白为什么。我验证了有问题的端口有活动规则(以及下面输出中未列出的许多其他端口)。

Set objFirewall = CreateObject("HNetCfg.FwMgr")
Set objPolicy = objFirewall.LocalPolicy.CurrentProfile

Set colPorts = objPolicy.GloballyOpenPorts

For Each objPort in colPorts
    Wscript.Echo "Port name: " & objPort.Name
    Wscript.Echo "Port number: " & objPort.Port
    Wscript.Echo "Port protocol: " & objPort.Protocol
    Wscript.Echo "Port enabled: " & objPort.Enabled
Next

我认为我追踪了objPort scope = _.extend(scope, ParentScope); ,但我甚至看不到状态属性,所以我认为这是错误的方向。

1 个答案:

答案 0 :(得分:0)

这很有效。但是,我决定使用-b的{​​{1}}参数来查找可执行文件名中的字符串(在本例中为" vnc"),而不是端口。

netstat

这是一个将监视特定端口的bat文件。不幸的是,您必须使用提升的权限从命令提示符运行它。

strCommand = "cmd /C ""netStat -n -b | find ""vnc"""""
Set StdOut = WScript.StdOut
Set objShell = CreateObject("WScript.Shell")
found = 0
wscript.echo "Waiting for connection..."

Do Until found = 1
    set objScriptExec = objShell.Exec (strCommand)

    strResults = LCase(objScriptExec.StdOut.ReadAll)

    if len (strResults) > 0 then
        MsgBox "Found VNC connection!"
        found = 1
    else
        WScript.Sleep(5000)
    End if
Loop