尝试制作批处理文件,通过netstat检测未经授权的连接

时间:2016-09-28 01:03:28

标签: windows batch-file cmd

我现在有点困境。您看到我正在尝试创建一个批处理应用程序,它将检测文本文件中已保存连接的未知连接。不知何故,我需要应用程序将netstat结果与文本文件中的一个进行比较。这就是我的尝试:

if %netstat -b 5% equ c:\list.txt goto :win
else goto :fail

现在我确实试图找到解决方案,但无济于事。也许我做错了什么?还是有另一种方法吗?我希望netstat命令将结果与文本文件中记录的内容进行比较。请帮我!

1 个答案:

答案 0 :(得分:1)

以下命令将执行您所需要的操作。

for /f "tokens=3" %%f in ('netstat -b 5') do (
    findstr /c:"%%f" c:\list.txt && (
        echo Allowed %%f 
    ) || (
        echo Disallowed %%f
    )
)

这将迭代netstat -b 5的每一行输出。 (注意这是非常慢的,所以对于测试我将输出重定向到netstat.output然后只是加载文件)。

说明

  • For /F - 迭代括号中命令/文件的每一行。
  • tokens=3 - 获取第3个令牌(远程地址)
  • %%f - 变量名称
  • 'netstat -b 5'netstat.output - 要迭代的行的来源
  • do - 要运行的命令

然后我们启动findstr并告诉它在文件%%f中查找字符串c:\list.txt。如果成功,&&命令将运行此地址。否则,如果找不到该字符串,则||命令将运行