Я создаю приложение Java для проверки состояния брандмауэра. В более простых словах он должен дать вывод, включен ли брандмауэр или выключен (обратите внимание, что когда я говорю о брандмауэре, я имею в виду встроенный брандмауэр, который поставляется с ОС Windows). Мне нужен этот код, чтобы дать статус самой локальной машины. В принципе, то, что я пытаюсь сделать, это имитировать команду «netsh advfirewall show allprofiles state».Код Java для проверки состояния брандмауэра
0
A
ответ
1
Насколько я знаю, нет API-интерфейсов Java для проверки встроенного состояния брандмауэра 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
возвращается, но я полагаю, что простой output.toString().contains()
будет работать. Не забудьте поймать какие-то исключения!