【问题标题】:Block/Redirect IP's or hosts without hosts file in c# 2.0在 c# 2.0 中阻止/重定向 IP 或没有主机文件的主机
【发布时间】:2016-01-22 09:58:39
【问题描述】:

这个问题很难找到答案。我想阻止域列表,例如,如果 google.com 下的任何内容进入 DNS 并被接收,它将重定向或关闭连接,从而阻止恶意网站访问主机计算机。我听说 iphlpapi.dll 对此很有用,但是关于这个 DLL 及其用法的用户友好信息很少或根本没有。我不会超过 .net 2.0,我的语言是 C#。谢谢:)。

我愿意(至少其中一项)

阻止来自主域的一组域 阻止某个 IP 或范围 从主域重定向一组域 重定向某个 IP 或范围。

最好不需要管理员或 UAC 权限。

谢谢:)

【问题讨论】:

    标签: c# redirect dns ip block


    【解决方案1】:

    如果您使用的是 Windows Vista/7,则可以使用内置防火墙阻止任何使用 NetFwTypeLib(位于 FirewallAPI.dll 中)的主机

        using System;
    using System.Runtime.InteropServices;
    using System.Text;
    using NetFwTypeLib;
    namespace WinFirewall
    {
        public class FWCtrl
        {
            const string guidFWPolicy2 = "{E2B3C97F-6AE1-41AC-817A-F6F92166D7DD}";
            const string guidRWRule = "{2C5BC43E-3369-4C33-AB0C-BE9469677AF4}";
            static void Main(string[] args)
            {
                FWCtrl ctrl = new FWCtrl();
                ctrl.Setup();
            }
            public void Setup()
            {
                Type typeFWPolicy2 = Type.GetTypeFromCLSID(new Guid(guidFWPolicy2));
                Type typeFWRule = Type.GetTypeFromCLSID(new Guid(guidRWRule));
                INetFwPolicy2 fwPolicy2 = (INetFwPolicy2)Activator.CreateInstance(typeFWPolicy2);
                INetFwRule newRule = (INetFwRule)Activator.CreateInstance(typeFWRule);
                newRule.Name = "InBound_Rule";
                newRule.Description = "Block inbound traffic from 192.168.0.2 over TCP port 4000";
                newRule.Protocol = (int) NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP;
                newRule.LocalPorts = "4000";
                newRule.RemoteAddress = "192.168.0.2";
                newRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN;
                newRule.Enabled = true;
                newRule.Grouping = "@firewallapi.dll,-23255";
                newRule.Profiles = fwPolicy2.CurrentProfileTypes;
                newRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
                fwPolicy2.Rules.Add(newRule);
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      试试string restricted ="IP.IP.IP";

      也可以是网址string restricted = "www.website.com";

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-13
        • 1970-01-01
        • 2017-12-10
        • 2013-07-28
        • 2012-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多