Java 检查防火墙状态的代码

Java code to check the status of firewall

我正在构建一个 Java 应用程序来检查防火墙的状态。简单来说,它应该给出防火墙是打开还是关闭的输出(请注意,当我说防火墙时,我指的是 Windows OS 附带的内置防火墙)。我需要这段代码来给出本地机器本身的状态。基本上,我想做的是模拟命令 "netsh advfirewall show allprofiles state".

据我所知,没有 Java API 可用于检查内置 Windows 防火墙状态,因此您可能不得不求助于从 Java。一个例子:

StringBuilder output = new StringBuilder();
Process p = Runtime.getRuntime().exec("netsh advfirewall show allprofiles state");
p.waitFor(); //Wait for the process to finish before continuing the Java program.

BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";           
while ((line = reader.readLine()) != null) {
  output.append(line + "\n");
}
//output.toString() will contain the result of "netsh advfirewall show all profiles state"

因为我手头没有 Windows 机器,所以我不知道 netsh advfirewall show allprofiles state returns 是什么,但我想一个简单的 output.toString().contains() 就可以了。不要忘记捕获任何异常!