gpt4 book ai didi

c# - 在 c# 2.0 中阻止/重定向 IP 或没有主机文件的主机

转载 作者:太空宇宙 更新时间:2023-11-03 17:01:00 28 4
gpt4 key购买 nike

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

我愿意(至少其中之一)

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

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

谢谢:)

最佳答案

如果您使用的是 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);
}
}
}

关于c# - 在 c# 2.0 中阻止/重定向 IP 或没有主机文件的主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33292610/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com