Блокировка / разблокировка IP-адреса CommandLine в брандмауэре Windows с повышенной безопасностью
Я хотел бы программно иметь возможность блокировать исходящие пакеты на некоторые IP-адреса. Неважно, приложение, я хотел бы быть в состоянии сделать это.
У меня Windows 7 x64 Professional, поэтому он поставляется с WindowsFirewall с расширенной безопасностью, которая имеет возможность фильтрации исходящих сообщений.
В настоящее время я вручную добавляю правила для блокировки IP, но должен быть лучший способ.
Я прочитал это: Любой способ отключить "Интернет" в Windows, используя C#? и http://msdn.microsoft.com/en-us/library/bb945065.aspx так что я знаю, что можно писать такие приложения.
Я программист Java, и я не мог найти jni для взаимодействия с firewall.dll. Я ничего не знаю о C#, чтобы написать его сам.
Я спрашиваю, есть ли инструмент, который может это сделать, пожалуйста, дайте мне знать об этом. Я гуглил и гуглил, но увы - ничего. Если нет, пожалуйста, дайте мне начать писать самому.
Если вы чувствуете себя щедрым, вы можете написать один для меня, если бы вы могли заблокировать исходящий трафик на IP и разблокировать его.
Спасибо всем большое.
1 ответ
Самый простой способ - запустить netsh, вот статья о том, как это сделать.
Современная альтернатива netsh - powershell. Команды Enable-NetFirewallRule и Disable-NetFirewallRule позволяют включать и выключать правила из сценария powershell. Команда Set-NetFirewallRule позволяет вам редактировать существующее правило брандмауэра, если вы хотите изменить IP-адрес, на который влияет правило. Вы можете даже добавить новые правила, используя New-NetFirewallRule, если это необходимо.