Какой самый простой способ для приложения, которое я пишу, заблокировать весь доступ в Интернет на компьютере с Windows?
Подробнее:
Windows: XP или выше
Приложение: базовое приложение Win32, написанное на C / C ++.
Блокировка: она должна иметь возможность блокировать и разблокировать по желанию, в идеале таким образом, чтобы пользователь не мог легко повернуть вспять. (Например, щелкнув правой кнопкой мыши значок сетевого подключения на панели задач.) Кроме того, в идеале мне бы хотелось, чтобы он использовал метод, позволяющий восстановить доступ, если пользователь перезапустит Windows или перезагрузит компьютер, хотя я бы также будьте готовы автоматически запустить приложение с Windows и разблокировать доступ при запуске, если машина была перезагружена в заблокированном состоянии.
Доступ в Интернет. Прежде всего, я бы хотел запретить обычным браузерам посещать обычные сайты http / https. Во-вторых, было бы неплохо заблокировать IM-клиенты и клиентские приложения для социальных сетей. Также было бы неплохо, но не обязательно, разрешить локальную сеть для обмена файлами и т. Д. (Обратите внимание, что только первое требование является абсолютным.)
Заключительные замечания: Это не означает, что это утилита безопасности, и ее отношения с пользователем не будут состязательными (как, например, с утилитой родительского контроля), поэтому для нее не важно использовать схему, которая может ' не может быть решен определенным пользователем. (Учтите, что я намерен выполнить перезагрузку или сброс, чтобы снять блокировку. Это означает, что любой обходной путь, который может обнаружить пользователь, потребует больше усилий, чем это нормально.)
Спасибо!
p.s. Я подозреваю, что API брандмауэра Windows не будет работать для меня, потому что это должно работать для пользователей, которые не включили брандмауэр или не имеют прав администратора, но я буду рад, если я исправлю это.