阻止连接通过IP
我需要能够阻止任何和所有连接到我的电脑从一个特定的IP地址,我知道这是可能的防火墙,但我需要在c#中做到这一点。任何想法如何(需要代码)。阻止连接通过IP
更新: 它是一种通用的C#应用程序不asp.net,目标平台是WinXp下,直到Win7的
需要了解更多信息......如果你说的socket通信,你可以简单地关闭与客户端的连接如果IP地址被阻止,则一旦它连接,或处理连接请求并在那里评估。
编辑:最简单的方法可以让你很可能只是Windows防火墙的API互动......这里是如何:
这听起来不错,如果不完全是我需要的,只是不知道如何去做,文章/代码将有所帮助 – RC1140 2009-08-18 15:06:05
你的问题还不清楚,但我会尽量回答最好我可以,在我的理解。
- 是否要控制机器连接到机器上的任何端口?如果是这样,您需要控制内置的Windows防火墙或找到自己可以控制的过滤驱动程序。为了编写你自己的过滤器驱动程序,你必须离开托管代码的土地,所以我猜这不是一个选项。
要了解如何控制防火墙,这里有一个链接:
http://www.shafqatahmed.com/2008/01/controlling-win.html
更多的谷歌。
- 是否要控制远程计算机与应用程序拥有的计算机上的端口的连接?你也不能这样做(参见上面的#1)。但是,您可以在连接后采取措施,并在不喜欢远程IP的情况下关闭连接(检查远程端点的IP)。
两个警告这种方法:
它不会从DoS攻击拯救你。 您将需要小心,如果你需要IPv6的支持(你不能只检查在这种情况下,IPV4地址)
HTH
我不介意进入unmanged代码,只是更喜欢使用托管代码 – RC1140 2009-08-19 06:41:17
“防火墙”在C#中?
首先你必须访问一个低层的网络接口,例如:http://msdn.microsoft.com/en-us/library/ms817945.aspx
然后,你必须分析所有传入数据包,也许丢弃。
这不是一件容易的事情,我不建议您在C#中编写驱动程序和防火墙,因为每次启动计算机时都会加载.NET Framework。 此外,流量解析可能会非常棘手......前段时间,我在C#中实现了一个路由器/流量分析器,并花了我大约一年的时间来获得网络编程的经验,以获取相关知识。
您是否问如何在C#中编写通用防火墙应用程序?或者你是否在IIS下运行ASP.Net应用程序的情况下提出这个问题?或者是什么? – jsight 2009-08-18 15:00:07
您是否想要从代码更新防火墙,或只是忽略来自特定IP地址的代码请求?如果是后者,那么它不是一个很好的做事方式,你的系统将主动接收来自IP的数据并忽略它,而不是让防火墙在第一时间阻止它。另外,目标平台是什么?最后,你有没有提供你想要的任何代码?如果是这样,那么请张贴它并告诉我们它是如何工作的。 – Lazarus 2009-08-18 15:01:24