Если вы используете Windows Vista, вы можете использовать встроенный брандмауэр, чтобы заблокировать любой доступ в Интернет.
Следующий код создает правило брандмауэра, которое блокирует любые исходящие соединения на всех ваших сетевых адаптерах:
using NetFwTypeLib; // Located in FirewallAPI.dll
...
INetFwRule firewallRule = (INetFwRule)Activator.CreateInstance(
Type.GetTypeFromProgID("HNetCfg.FWRule"));
firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
firewallRule.Description = "Used to block all internet access.";
firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_OUT;
firewallRule.Enabled = true;
firewallRule.InterfaceTypes = "All";
firewallRule.Name = "Block Internet";
INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(
Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
firewallPolicy.Rules.Add(firewallRule);
Затем удалите правило, если хотите снова разрешить доступ в Интернет:
INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(
Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
firewallPolicy.Rules.Remove("Block Internet");
Это небольшая модификация некоторого другого кода, который я использовал, поэтому я не могу дать никаких гарантий, что он будет работать. Еще раз, имейте в виду, что для этого вам понадобятся Windows Vista (или более поздняя версия) и права администратора.
Ссылка на документацию API брандмауэра .