Блокировать все сетевые подключения Windows с помощью Java

Я хотел бы запрограммировать небольшое приложение на Java, которое блокировало бы все сетевые подключения (для всей ОС, а не только для виртуальной машины) по требованию. Приложение предназначено только для платформы Windows, и я хотел бы использовать специальные API для Windows.

Я просмотрел API брандмауэра Windows. , но не нашел ничего полезного. Кроме того, я не знаю, как вызывать эти API с помощью JNA.

Я прошу вас дать несколько указателей или примеров того, как я могу выполнить эти задачи:

  • Использование брандмауэра Windows или других API-интерфейсов в Java с использованием JNA или какой-либо другой библиотеки (JNI не является предпочтительным)
  • Блокировать/разблокировать все соединения

person Mitja    schedule 09.07.2011    source источник
comment
Нужна ли здесь Java? Разве вы не можете напрямую вызывать эти API-интерфейсы Windows, используя пакетный/VB-скрипт или что-то в этом роде?   -  person adarshr    schedule 09.07.2011
comment
или рассмотрите возможность использования AutoIt v3.   -  person Hovercraft Full Of Eels    schedule 09.07.2011
comment
Я не думаю, что хочу, чтобы ваше приложение связывалось с другими моими сетевыми подключениями, пожалуйста.   -  person DOK    schedule 09.07.2011


Ответы (2)


Вы можете использовать командную строку «netsh», см. http://support.microsoft.com/kb/875357 Вызовите команду netsh, используя следующий синтаксис:

Runtime.getRuntime().exec(command)

Но, думаю, брандмауэр не то, что нужно в данном случае. Вот утилита командной строки для включения/отключения сетевых интерфейсов для Windows: http://www.novell.com/communities/node/2338/network-configuration-command-line-control

person Dmitry Negoda    schedule 09.07.2011

В Java нет поддержки API для этого. Вы не можете сделать это.

person user207421    schedule 09.07.2011
comment
@downvoter, пожалуйста, объясни. Если вы думаете, что знаете способ, пожалуйста, поделитесь им с нами, чтобы ваша теория могла быть публично обсуждена. - person user207421; 12.07.2011
comment
Вопрос помечен JNA, что дает мне указание на то, что он ищет Windows API для блокировки сетевых подключений, и это позволяет мне поверить, что он понимает, что для этого нет встроенной поддержки в Java. - person Frank Hale; 15.07.2011