Блокировка / разблокировка 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, если это необходимо.

Другие вопросы по тегам