2016-05-14 4 views
0

У меня есть кнопка, которую когда-то щелкнули, она добавит новое правило в брандмауэр. НО проблема в том, что ее можно щелкнуть много раз и добавить много правил.Как проверить, существует ли правило брандмауэра

Как проверить, существует ли правило в брандмауэре? (Или это можно проверить правила?)

Вот мой код для добавления правила:

ProcessStartInfo run = new ProcessStartInfo(); 
run.FileName = "cmd.exe"; 
run.Verb = "runas"; 
run.Arguments = "/C netsh advfirewall firewall add rule name=\"Block IP Rule\" dir=in interface=any action=block remoteip=x.x.x.x"; 
run.WindowStyle = ProcessWindowStyle.Hidden; 
Process.Start(run); 
+1

попытаться удалить существующие правила и добавить его снова:), думаю, просто – Oli

+0

спасибо за простейшую идею, никогда не думал об этом: D – newbieguy

ответ

3
public static void RemoveFirewallRules(string RuleName = "BreakermindCom") 
{ 
    try 
    { 
     Type tNetFwPolicy2 = Type.GetTypeFromProgID("HNetCfg.FwPolicy2"); 
     INetFwPolicy2 fwPolicy2 = (INetFwPolicy2)Activator.CreateInstance(tNetFwPolicy2); 
     var currentProfiles = fwPolicy2.CurrentProfileTypes;    

     // Lista rules 
     List<INetFwRule> RuleList = new List<INetFwRule>(); 

     foreach (INetFwRule rule in fwPolicy2.Rules) 
     { 
      // Add rule to list 
      //RuleList.Add(rule); 
      // Console.WriteLine(rule.Name); 
      if (rule.Name.IndexOf(RuleName) != -1) 
      { 
       // Now add the rule 
       INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));      
       firewallPolicy.Rules.Remove(rule.Name); 
       Console.WriteLine(rule.Name + " has been deleted from Firewall Policy"); 
      } 
     } 
    } 
    catch (Exception r) 
    { 
     Console.WriteLine("Error delete rule from firewall"); 
    }} 

работы ...:}

+0

http://stackoverflow.com/questions/15409790/adding-an-application-firewall-rule-to-both-private-and-public- network-via-win7 –

+0

Спасибо, хотя я пробовал простую идею Оли, и это лучше в моей ситуации. – newbieguy

+0

https://github.com/fxstar/Chash/blob/master/C%23FirewallBanAllowIPfromMysql.cs Здесь пример с базой данных mysql Запрет и разрешить адрес ip –

 Смежные вопросы

  • Нет связанных вопросов^_^