2010-12-07 9 views
8

पर प्रोग्रामेटिक रूप से आईपी जोड़ें किसी को भी पता है कि कैसे एक सर्वर 2008 में Windows सुरक्षा फ़ायरवॉल को उन्नत सुरक्षा नियम के साथ प्रोग्रामेटिक रूप से एक आईपी पता जोड़ना है?प्रोग्राम 2008 में फ़ायरवॉल नियम

यानी मैंने ब्लॉक एक्शन फ़ायरवॉल नियम स्थापित किया है जिसमें कुछ आईपी पते स्कोप के "रिमोट आईपी पते" अनुभाग के तहत सूचीबद्ध हैं। मैं इस सूची से प्रोग्रामेटिक रूप से (या शायद हटाएं) आईपी पते को जोड़ने में सक्षम होना चाहता हूं। क्या ऐसा करने के लिए .NET ऑब्जेक्ट उपलब्ध हैं?

उत्तर

11

उन्नत सुरक्षा प्रारंभ पृष्ठ Windows फ़ायरवॉल में पाया जा सकता के लिए: यदि आप INetFwRule इंटरफेस की जरूरत

http://msdn.microsoft.com/en-us/library/ff956124(v=VS.85).aspx

विशेष रूप से, ऐसा लगता है है जो पर दिए गए वर्णन:

http://msdn.microsoft.com/en-us/library/aa365344(v=VS.85).aspx

चेक get_RemoteAddresses और put_RemoteAddresses

8

तुम भी netsh पर्यावरण कोशिश कर सकते हैं।
मैं इसे एक बार इस्तेमाल मेरी इंटरफ़ेस का MTU बदलते

4

मैंने अभी यह काम vb.NET में किया है। एक refrence जोड़ें "c: \ windows \ system32 \ firewallapi.dll"

एक वर्ग फ़ायरवॉल कहा जाता है - इसलिए की तरह:

Imports NetFwTypeLib 
Imports System.Net 

Public Class Firewall 
    Implements IDisposable 
    Private _policy As INetFwPolicy2 = Nothing 

    Private ReadOnly Property Policy As INetFwPolicy2 
     Get 
      If _policy Is Nothing Then 
       _policy = DirectCast(Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2")), INetFwPolicy2) 
      End If 
      Return _policy 
     End Get 
    End Property 

    Public Sub Add(ipAddress As IPAddress, ruleName As String) 
     Dim firewallRule As NetFwTypeLib.INetFwRule = Policy.Rules.Item(ruleName) 
     Dim NewAddress As String = ipAddress.ToString & "/255.255.255.255" 
     If Not firewallRule.RemoteAddresses.Contains(NewAddress) Then 
      firewallRule.RemoteAddresses += "," & NewAddress 
     End If 
    End Sub 

    Public Sub Remove(ipAddress As IPAddress, ruleName As String) 
     Dim firewallRule As NetFwTypeLib.INetFwRule = Policy.Rules.Item(ruleName) 
     Dim NewAddress As String = ipAddress.ToString & "/255.255.255.255" 
     If firewallRule.RemoteAddresses.Contains(NewAddress) Then 
      Dim ipList As String = firewallRule.RemoteAddresses 
      ipList = ipList.Replace(NewAddress, "") 
      ipList = ipList.Replace(",,", ",") 
      firewallRule.RemoteAddresses = ipList 
     End If 
    End Sub 

    Public Function Exists(ipAddress As IPAddress, ruleName As String) As Boolean 
     Dim firewallRule As NetFwTypeLib.INetFwRule = Policy.Rules.Item(ruleName) 
     Dim NewAddress As String = ipAddress.ToString & "/255.255.255.255" 
     If firewallRule.RemoteAddresses.Contains(NewAddress) Then 
      Return True 
     Else 
      Return False 
     End If 
    End Function 

    Private disposedValue As Boolean 
    Protected Overridable Sub Dispose(disposing As Boolean) 
     If Not Me.disposedValue Then 
      If disposing Then 
      End If 
      If Not _policy Is Nothing Then 
       _policy = Nothing 
      End If 
     End If 
     Me.disposedValue = True 
    End Sub 

    Public Sub Dispose() Implements IDisposable.Dispose 
     Dispose(True) 
     GC.SuppressFinalize(Me) 
    End Sub 
End Class 
+0

नाइस कोड। मेरे लिए अच्छा काम करना – SamTech

संबंधित मुद्दे