Walter.Web.FireWall.DiskLogger 2022.8.1.1

The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org. Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Walter.Web.FireWall.DiskLogger --version 2022.8.1.1
NuGet\Install-Package Walter.Web.FireWall.DiskLogger -Version 2022.8.1.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Walter.Web.FireWall.DiskLogger" Version="2022.8.1.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Walter.Web.FireWall.DiskLogger --version 2022.8.1.1
#r "nuget: Walter.Web.FireWall.DiskLogger, 2022.8.1.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Walter.Web.FireWall.DiskLogger as a Cake Addin
#addin nuget:?package=Walter.Web.FireWall.DiskLogger&version=2022.8.1.1

// Install Walter.Web.FireWall.DiskLogger as a Cake Tool
#tool nuget:?package=Walter.Web.FireWall.DiskLogger&version=2022.8.1.1

Windows firewall management

You can use the windows firewall from as shown in this class The NuGet package uses the PowerShell command s in combination with a file watcher but there are several ways to interact with a physical firewall from code

/*
To use windows Firewall com object add a reference to %system32%\FirewallAPI.dll 
*/
    class FireWallHelper
    {
        const string guidFWPolicy2 = "{E2B3C97F-6AE1-41AC-817A-F6F92166D7DD}";
        const string guidRWRule = "{2C5BC43E-3369-4C33-AB0C-BE9469677AF4}";
        static Type typeFWPolicy2;
        static Type typeFWRule;
        static INetFwPolicy2 fwPolicy2;
        static FireWallHelper()
        {
            typeFWPolicy2 = Type.GetTypeFromCLSID(new Guid(guidFWPolicy2));
            typeFWRule = Type.GetTypeFromCLSID(new Guid(guidRWRule));
            fwPolicy2 = (INetFwPolicy2)Activator.CreateInstance(typeFWPolicy2);

        }
        public static bool IsPortOpen(int port)
        {
            EnsureSetup();

            Type progID = Type.GetTypeFromProgID("HNetCfg.FwMgr");
            INetFwMgr firewall = Activator.CreateInstance(progID) as INetFwMgr;
            INetFwOpenPorts ports = firewall.LocalPolicy.CurrentProfile.GloballyOpenPorts;
            IEnumerator portEnumerate = ports.GetEnumerator();
            while ((portEnumerate.MoveNext()))
            {
                INetFwOpenPort currentPort = portEnumerate.Current as INetFwOpenPort;
                if (currentPort.Port == port)
                    return true;
            }
            return false;
        }
        static INetFwRule MakeRule(IPAddress remoteIP, string ruleName = null)
        {
            INetFwRule rule = (INetFwRule)Activator.CreateInstance(typeFWRule);
            rule.Name = ruleName ?? $"Inbound block IP {remoteIP}";
            rule.Description = $"Block inbound traffic from {remoteIP} over TCP port";
            rule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_ANY;
            rule.RemoteAddresses = remoteIP.ToString();
            rule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN;
            rule.Enabled = true;
            rule.Grouping = "@firewallapi.dll,-23255";
            rule.Profiles = fwPolicy2.CurrentProfileTypes;
            return rule;
        }
        static INetFwRule MakeRule(int port, IPAddress remoteIP, string ruleName = null)
        {
            INetFwRule rule = (INetFwRule)Activator.CreateInstance(typeFWRule);
            rule.Name = ruleName ?? $"Inbound block IP {remoteIP}";
            rule.Description = $"Block inbound traffic from {remoteIP} over TCP port {port}";
            rule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_ANY;
            rule.LocalPorts = port.ToString();
            rule.RemoteAddresses = remoteIP.ToString();
            rule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN;
            rule.Enabled = true;
            rule.Grouping = "@firewallapi.dll,-23255";
            rule.Profiles = fwPolicy2.CurrentProfileTypes;
            return rule;
        }

        public static void OpenPort(int port, IPAddress remoteIP, string ruleName = null)
        {
            EnsureSetup();
            var newRule = MakeRule(port, remoteIP, ruleName);
            newRule.Enabled = false;
            newRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;
            fwPolicy2.Rules.Add(newRule);
        }
        public static void ClosePort(int port, IPAddress remoteIP, string ruleName)
        {
            EnsureSetup();
            var newRule = MakeRule(port, remoteIP, ruleName);

            newRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
            fwPolicy2.Rules.Add(newRule);

        }

        public static void CloseIP(IPAddress remoteIP, string ruleName)
        {
            EnsureSetup();
            var newRule = MakeRule(remoteIP, ruleName);

            newRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
            fwPolicy2.Rules.Add(newRule);
        }

        public static void OpenIP(IPAddress remoteIP, string ruleName)
        {
            EnsureSetup();

            var newRule = MakeRule(remoteIP, ruleName);

            newRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;
            fwPolicy2.Rules.Add(newRule);
        }

        public static void OpenPort(int port, string applicationName)
        {
            EnsureSetup();

            if (IsPortOpen(port))
                return;

            INetFwOpenPort openPort = GetInstance("INetOpenPort") as INetFwOpenPort;
            openPort.Port = port;
            openPort.Protocol = NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP;
            openPort.Name = applicationName;

            INetFwOpenPorts openPorts = sm_fwProfile.GloballyOpenPorts;
            openPorts.Add(openPort);
        }

        public static void ClosePort(int port)
        {
            EnsureSetup();

            if (!IsPortOpen(port))
                return;

            INetFwOpenPorts ports = sm_fwProfile.GloballyOpenPorts;
            ports.Remove(port, NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP);
        }

        private static object GetInstance(string typeName)
        {
            Type tpResult = null;
            switch (typeName)
            {
                case "INetFwMgr":
                    tpResult = Type.GetTypeFromCLSID(new Guid("{304CE942-6E39-40D8-943A-B913C40C9CD4}"));
                    return Activator.CreateInstance(tpResult);
                case "INetAuthApp":
                    tpResult = Type.GetTypeFromCLSID(new Guid("{EC9846B3-2762-4A6B-A214-6ACB603462D2}"));
                    return Activator.CreateInstance(tpResult);
                case "INetOpenPort":
                    tpResult = Type.GetTypeFromCLSID(new Guid("{0CA545C6-37AD-4A6C-BF92-9F7610067EF5}"));
                    return Activator.CreateInstance(tpResult);
                default:
                    throw new Exception("Unknown type name: " + typeName);
            }
        }

        private static void EnsureSetup()
        {
            if (sm_fwProfile != null)
                return;

            INetFwMgr fwMgr = GetInstance("INetFwMgr") as INetFwMgr;
            sm_fwProfile = fwMgr.LocalPolicy.CurrentProfile;
        }

        private static INetFwProfile sm_fwProfile = null;

    }


Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 is compatible. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2023.11.13.1117 378 11/13/2023
2023.10.26.1502 290 10/29/2023
2023.10.12.1926 353 10/12/2023
2023.9.14.812 395 9/14/2023
2023.9.7.1748 397 9/7/2023
2023.9.7.1241 395 9/7/2023
2023.9.6.1001 374 9/6/2023
2023.9.5.1246 392 9/5/2023
2023.9.5.1032 385 9/5/2023
2023.8.31.1522 422 8/31/2023
2023.8.29.1040 409 8/29/2023
2023.8.17.901 458 8/17/2023
2023.8.9.1314 443 8/9/2023
2023.8.2.750 542 8/2/2023
2023.7.12.830 435 7/12/2023
2023.7.5.1419 556 7/6/2023
2023.6.14.1628 513 6/14/2023
2023.6.11.1304 578 6/11/2023
2023.5.30.1640 568 5/30/2023
2023.5.4.1552 609 5/4/2023
2023.5.1.1524 616 5/1/2023
2023.4.29.910 622 4/29/2023
2023.4.12.1236 621 4/12/2023
2023.3.22.1456 616 3/22/2023
2023.3.14.1356 668 3/14/2023
2023.3.1.810 654 3/1/2023
2023.2.25.11857 696 2/25/2023
2023.2.22.27 672 2/22/2023
2023.2.15.1413 709 2/15/2023
2023.2.11.1628 724 2/11/2023
2023.1.11.534 746 1/11/2023
2022.12.30.711 712 12/30/2022
2022.12.15.1108 751 12/15/2022
2022.12.14.648 736 12/14/2022
2022.11.27.1059 777 11/27/2022
2022.11.21.338 763 11/21/2022
2022.11.14.1819 758 11/14/2022
2022.11.13.917 750 11/13/2022
2022.10.31.740 836 11/1/2022
2022.10.15.652 817 10/15/2022
2022.10.1.810 936 10/1/2022
2022.9.26.1444 899 9/26/2022
2022.9.14.1508 966 9/14/2022
2022.9.14.809 1,001 9/14/2022
2022.9.8.1009 1,007 9/8/2022
2022.8.20.1007 960 8/20/2022
2022.8.1.1 988 7/31/2022
2022.7.1300 1,021 7/1/2022
2022.7.31.1016 931 7/31/2022
2022.7.15.841 997 7/15/2022
2022.6.21.647 956 6/21/2022
2022.5.18.638 957 5/19/2022
2022.5.16.853 1,023 5/19/2022
2022.5.16.816 988 5/16/2022
2022.5.4.1010 1,003 5/4/2022
2022.4.10.947 1,044 4/10/2022
2022.4.10.925 1,071 4/10/2022
2022.4.10.828 1,069 4/10/2022
2022.4.1.1545 1,106 4/1/2022
2022.3.31.823 1,043 3/31/2022
2022.3.26.1103 1,023 3/26/2022
2022.3.26.820 1,129 3/26/2022
2022.3.25.840 1,042 3/26/2022
2022.2.16.1131 1,106 2/17/2022
2022.2.16.834 1,203 2/17/2022
2022.2.5.1114 1,198 2/5/2022
2022.1.17.1158 1,104 1/17/2022
2022.1.10.1505 1,212 1/10/2022
2022.1.10.537 1,139 1/10/2022
2022.1.5.1139 1,247 1/8/2022
2021.12.28.1452 1,311 12/28/2021
2021.12.16.812 1,095 12/16/2021
2021.11.23.1528 7,325 11/24/2021
2021.11.21.925 1,238 11/22/2021
2021.11.19.1503 1,424 11/22/2021
2021.11.19.847 1,412 11/19/2021
2021.11.18.1824 1,187 11/16/2021
2021.11.10.852 1,215 11/10/2021
2021.11.9.2021 1,370 11/9/2021
2021.11.8.2109 878 11/9/2021
2021.11.8.1612 943 11/8/2021
2021.11.7.1021 989 11/8/2021
2021.11.3.1612 1,026 11/4/2021
2021.11.1.1102 1,054 11/1/2021
2021.10.25.1206 1,086 10/25/2021
2021.10.23.1310 1,030 10/25/2021
2021.10.19.1522 1,017 10/19/2021
2021.10.16.1325 1,037 10/18/2021
2021.10.6.1546 925 10/6/2021
2021.10.5.1450 1,129 10/5/2021
2021.10.4.1155 1,069 10/5/2021
2021.10.1.753 1,062 10/1/2021
2021.9.27.1005 955 9/28/2021
2021.9.26.1913 1,057 9/26/2021
2021.9.19.1015 1,106 9/19/2021
2021.9.17.1702 1,032 9/17/2021
2021.9.17.1449 943 9/17/2021
2021.9.13.1600 1,030 9/13/2021
2021.9.12.1100 1,100 9/13/2021
2021.9.11.2004 1,097 9/11/2021
2021.9.9.1110 1,096 9/9/2021
2021.9.7.1901 1,202 9/8/2021
2021.9.7.1121 1,066 9/7/2021
2021.9.6.1518 1,066 9/7/2021
2021.9.4.1124 1,233 9/4/2021
2021.9.2.708 1,014 9/4/2021
2021.9.0.1259 1,088 9/2/2021
2021.8.2200 966 8/23/2021
2021.8.2100 973 8/23/2021
2021.8.22.900 1,063 8/22/2021
2021.8.18.1500 1,098 8/18/2021
2021.8.18.930 1,153 8/18/2021
2021.8.14.1600 1,050 8/16/2021
2021.8.9.1105 996 8/9/2021
2021.8.8.1612 1,083 8/8/2021
2021.8.8.1138 1,162 8/8/2021
2021.8.6.1044 1,090 8/6/2021
2021.8.4.1355 1,102 8/5/2021
2021.7.30.2118 1,211 7/31/2021
2021.7.27.926 1,026 7/28/2021
2021.7.23.931 1,081 7/26/2021
2021.7.22.1456 999 7/23/2021
2021.7.15.1547 1,242 7/15/2021
2021.7.13.812 1,117 7/13/2021
2021.7.8.1527 1,140 7/10/2021
2021.7.5.1649 1,021 7/5/2021
2021.6.29.1453 1,052 6/30/2021
2021.6.26.1753 1,211 6/27/2021
2021.6.25.1849 1,294 6/25/2021
2021.6.24.1518 1,052 6/24/2021
2021.6.20.729 1,069 6/20/2021
2021.6.15.2006 1,085 6/15/2021
2021.6.14.2025 1,053 6/15/2021
2021.6.13.2035 1,105 6/14/2021
2021.6.12.1154 1,127 6/13/2021
2021.6.9.1120 1,011 6/9/2021
2021.6.3.1509 1,024 6/3/2021
2021.5.31.1533 1,116 5/31/2021
2021.5.31.1415 1,064 5/31/2021
2021.5.24.1128 1,050 5/24/2021
2021.5.24.1019 1,053 5/24/2021
2021.5.12.1054 988 5/12/2021
2021.5.12.637 1,112 5/12/2021
2021.5.10.1442 1,208 5/11/2021
2021.5.8.1226 1,003 5/8/2021
2021.5.6.2037 994 5/6/2021
2021.5.5.1901 1,026 5/6/2021
2021.5.3.1621 1,049 5/4/2021
2021.5.1.905 1,028 5/1/2021
2021.4.28.1511 954 4/28/2021
2021.4.20.1520 1,041 4/21/2021
2021.4.16.738 955 4/21/2021
2021.4.14.1216 1,137 4/16/2021
2021.4.9.1538 1,030 4/13/2021
2021.4.8.947 1,061 4/13/2021
2021.4.6.1235 1,054 4/6/2021
2021.4.5.1653 1,011 4/5/2021
2021.4.1.913 953 4/1/2021
2021.3.31.2003 1,023 4/1/2021
2021.3.18.1622 1,029 3/18/2021
2021.3.3.1259 1,028 3/3/2021
2021.3.2.1415 1,110 3/2/2021
2021.3.1.11 1,085 2/28/2021
2021.3.1.1 1,052 2/27/2021
2021.3.1 1,049 2/27/2021
2021.2.23.6 1,077 2/23/2021
2021.2.21.1 1,002 2/21/2021
2021.2.20.1 1,072 2/20/2021
2021.2.19.2 1,011 2/19/2021
2021.2.18.6 1,069 2/19/2021
2021.2.16.1 1,061 2/16/2021
2021.2.15.3 1,086 2/15/2021
2021.2.15.1 1,073 2/14/2021
2021.2.14.3 1,006 2/14/2021
2021.2.12.6 1,024 2/12/2021
2021.2.12.2 1,019 2/12/2021
2021.2.11.1 1,111 2/11/2021
2021.2.10.1 1,056 2/10/2021
2021.2.8.1 1,110 2/9/2021
2021.2.7.2 1,092 2/7/2021
2021.2.7.1 1,060 2/6/2021
2020.12.27.6 1,133 12/27/2020
2020.12.27.1 1,092 12/27/2020
2020.12.26.7 1,133 12/27/2020
2020.12.26.5 1,058 12/27/2020
2020.12.26.3 1,090 12/27/2020
2020.12.19.1 1,186 12/19/2020
2020.12.16.1 1,040 12/16/2020
2020.12.15.1 1,121 12/15/2020
2020.12.14.5 1,089 12/14/2020
2020.12.14.4 1,104 12/14/2020
2020.12.14.3 1,075 12/14/2020
2020.12.5.1 1,127 12/5/2020
2020.12.4.4 1,141 12/4/2020
2020.12.4.3 1,098 12/4/2020
2020.12.4.1 1,151 12/4/2020
2020.12.3.1 1,084 12/3/2020
2020.12.2.4 1,111 12/2/2020
2020.12.2.3 1,147 12/2/2020
2020.12.1.1 1,157 12/1/2020
2020.11.28.1 1,093 11/28/2020
2020.11.27.2 1,127 11/27/2020
2020.11.27.1 1,138 11/27/2020
2020.11.25.1 1,090 11/25/2020
2020.11.22.3 1,148 11/23/2020
2020.11.20.1 1,206 11/21/2020
2020.11.19.3 1,160 11/19/2020
2020.11.19.1 1,163 11/19/2020
2020.11.18.2 1,193 11/18/2020
2020.11.17.2 1,187 11/17/2020
2020.11.17.1 1,091 11/17/2020
2020.11.15.1 1,178 11/15/2020
2020.11.14.1 1,194 11/14/2020
2020.11.13.2 1,103 11/13/2020
2020.11.13.1 1,132 11/13/2020
2020.11.12.1 1,127 11/12/2020
2020.11.11.1 1,129 11/11/2020
2020.11.8.1 1,223 11/8/2020
2020.11.7.1 1,184 11/7/2020
2020.11.5.1 1,098 11/5/2020
2020.11.3.1 1,167 11/3/2020
2020.11.1.3 1,143 11/1/2020
2020.11.1.2 1,190 11/1/2020
2020.11.1.1 1,110 11/1/2020
2020.10.30.1 1,205 11/1/2020
2020.10.15.3 1,190 10/15/2020
2020.10.15.2 1,161 10/15/2020
2020.10.14.1 1,143 10/14/2020
2020.10.13.1 1,171 10/13/2020
2020.10.12.2 1,195 10/12/2020
2020.10.12.1 1,131 10/12/2020
2020.10.10.1 1,298 10/10/2020
2020.10.9.6 1,120 10/9/2020
2020.10.9.2 1,112 10/9/2020
2020.10.9.1 1,172 10/9/2020
2020.10.8.1 1,142 10/8/2020
2020.10.6.8 1,199 10/7/2020
2020.10.6.6 1,093 10/7/2020
2020.10.6.5 1,242 10/7/2020
2020.10.6.4 1,122 10/7/2020
2020.10.6.3 1,205 10/7/2020
2020.10.6.2 1,211 10/7/2020
2020.10.6.1 1,170 10/7/2020
2020.10.5.1 1,147 10/6/2020
2020.10.1.3 1,135 10/1/2020
2020.10.1.2 1,133 10/1/2020
2020.10.1.1 1,122 10/1/2020
2020.9.29.10 1,160 9/29/2020
2020.9.29.9 1,172 9/29/2020
2020.9.28.2 1,171 9/28/2020
2020.9.28.1 1,208 9/28/2020
2020.9.25.1 1,288 9/26/2020
2020.9.24.2 1,108 9/24/2020
2020.9.24 1,154 9/24/2020
2020.9.23.2 1,146 9/23/2020
2020.9.23.1 1,161 9/23/2020
2020.9.22.1 1,226 9/22/2020
2020.9.21.1 1,158 9/21/2020
2020.9.17.2 1,185 9/17/2020
2020.9.16.1 1,172 9/16/2020
2020.9.16 1,123 9/16/2020

Major releases that add functionality other than optimization and minor bug fixing
15 June 2022
- Update to support .net 6.0.7 and 3.1.27
- Update package references

4 May 2022
- Update NuGet References

15 March 2022
- update to 6.0.3

16 December 2021
- Update to .Net SDK update 14 December for .NET CORE 3.1.416, and .NET 5.0.404 and 6.0.101

9 November 2021
- Fix package dependency on vulnerable packages from Microsoft by upgrading vulnerable packages

08 November 2021
- Update to .Net NuGet packages .NET 6.0.0, .NET 5.0.403 and core 3.1.415

19 September
- Update NuGet packages release for .Net 5.0.10

8 Aug 2021
- update to .NET 6.0 SDK (v6.0.100-preview.6)

30 June 2021
- Add .Net 6.0 binaries to the NuGet package

15 June 2021
- Update to .Net Core 3.1.17 and .Net 5.0.8 SDK

09 June 2021
- Update to .Net SDK 5.0.301 and 3.1.410

31 April 2021
- Update debugger display to improve debugging experience
- Update on incident and communication interfaces
- Improved IFireWall WHOIS query method and include ISP counters

12 April 2021
- Update to new code base after .net security violation fix

22 March 2021
- Performance update

05 March 2021
- Update package reference

12 February 2021
- Framework extension changes
- Update package references

02 January 2021
- Updated terms and conditions to REL. 2021.01.02

29 December 2020
- Update package reference

23 December 2020
- Update package reference

19 December 2020
- Update package references

14 December 2020
- Update package references

12 December 2020
- Update package references
- Compile with Language version 9.0

04 December 2020
- Update package references

22 November 2020
- Update compiler hints improving .net Core 3.1 and .Net 5.0 compiled binaries

11 November 2020
- Update packages and support .Net 5.0

08 November 2020
- Update signatures and NuGet package references

14 October 2020
- Update to .net core 3.1.4

05 October 2020
- Update terms
- update NuGet package references

16 September 2020
- Add post processes support via options
- separate the Firewall integrated disk logging infrastructure to an external NuGet package to align licensing