通过IP阻止连接

时间:2009-08-18 14:56:08

标签: c# .net

我需要能够阻止从特定IP地址到我的电脑的任何和所有连接,我知道这可以通过防火墙,但我需要在c#中执行此操作。知道如何(需要代码)。

更新: 它是一个通用的C#应用​​程序而不是asp.net,目标平台是WinXp直到Win7

3 个答案:

答案 0 :(得分:4)

需要更多信息......如果您正在谈论套接字通信,只要IP地址被阻止,您就可以在连接时立即关闭与客户端的连接,或者处理连接请求并在那里进行评估。

编辑:最简单的方法可能就是与Windows防火墙API进行交互......具体方法如下:

http://www.shafqatahmed.com/2008/01/controlling-win.html

答案 1 :(得分:0)

你的问题不清楚,但我会尽力回答我的理解。

  1. 您是否希望控制机器连接到机器上的任何端口?如果是这样,您需要控制内置的Windows防火墙或找到自己可以控制的过滤器驱动程序。为了编写自己的过滤器驱动程序,你必须离开托管代码的土地,所以我猜这不是一个选项。
  2. 要了解如何控制防火墙,请点击以下链接:

    http://www.shafqatahmed.com/2008/01/controlling-win.html

    更多关于谷歌。

    1. 您是否希望控制远程计算机连接到您的应用程序所拥有的计算机上的端口?你也做不到(参见上面的#1)。但是,您可以在连接后执行操作,如果您不喜欢远程IP,请关闭连接(检查远程端点的IP)。
    2. 采用这种方法的两个警告:

      它不能帮助您免受DoS攻击。 如果你需要ipv6支持,你需要小心(在这种情况下你不能只检查IPV4地址)

      HTH

答案 2 :(得分:0)

c#中的“防火墙”?

首先,您必须在较低级别访问网络接口,例如:http://msdn.microsoft.com/en-us/library/ms817945.aspx

然后你必须解析所有传入的数据包并丢弃它们。

这不是一项容易的任务,我不建议您在C#中编写驱动程序和防火墙,因为每次启动计算机时都会加载.NET Framework。 流量解析也很棘手......我前段时间在C#中实现了路由器/流量分析器,我花了大约一年的时间来获得网络编程的经验,以获得这方面的知识。