728x90
반응형
WPF & C# - 방화벽 규칙 추가 ( FileWallRule Add / Remove) |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
// C:\Windows\System32\FirewallAPI.dll 참조추가 필요
void firewallRule()
{
INetFwRule firewallRule = (INetFwRule)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));
firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;
firewallRule.Description = "방화벽 규칙에 대한 설명을 입력합니다";
firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN;
firewallRule.ApplicationName = Environment.CurrentDirectory + @"\app.exe";
firewallRule.InterfaceTypes = "All";
firewallRule.Name = "Rule name"; // 방화벽 규칙을 구분하는 이름, 삭제시에도 사용됩니다
firewallRule.Enabled = true;
// 규칙추가
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("Rule name");
*/
// 규칙확인
INetFwPolicy2 firewallPolicy2 = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
foreach (INetFwRule rule in firewallPolicy2.Rules)
{
tbx.Text += rule.Name + "\n";
}
}
|
cs |
참고
728x90
반응형