代码之家  ›  专栏  ›  技术社区  ›  RC1140

通过IP阻止连接

  •  1
  • RC1140  · 技术社区  · 15 年前

    我需要能够阻止任何和所有连接到我的电脑从一个特定的IP地址,我知道这是可能的防火墙,但我需要在C这样做。知道怎么做吗(需要代码)。

    更新: 它是一个通用的C应用程序而不是ASP.NET,目标平台是WinXP到Win7

    3 回复  |  直到 15 年前
        1
  •  4
  •   Brandon    15 年前

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

    编辑: 最简单的方法可能就是与Windows防火墙API交互…以下是如何:

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

        2
  •  0
  •   user29117    15 年前

    你的问题不清楚,但我会尽我所能,在我的理解范围内回答。

    1. 是否要控制计算机从连接到计算机上的任何端口?如果是这样,您需要控制内置的Windows防火墙,或者找到您可以控制的过滤器驱动程序。为了编写自己的过滤器驱动程序,您必须离开托管代码之地,所以我想这不是一个选项。

    要了解如何控制防火墙,请访问以下链接:

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

    更多关于谷歌。

    1. 是否要控制远程计算机与应用程序拥有的计算机上的端口的连接?你也不能这样做(见上文1)。但是,您可以在连接后采取操作,如果不喜欢远程IP,则关闭连接(检查远程端点的IP)。

    这种方法有两个注意事项:

    它不能让你免于DOS攻击。 如果需要IPv6支持,您需要小心(在这种情况下,您不能只检查IPv4地址)

    高温高压

        3
  •  0
  •   Emiswelt    15 年前

    C中的“防火墙”?

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

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

    这不是一项简单的任务,我不建议您用C语言编写驱动程序和防火墙,因为每次启动计算机时都会加载.NET框架。 另外,流量分析也很棘手…一段时间前,我在C中实现了一个路由器/流量分析仪,我花了大约一年的时间积累了网络编程的经验,获得了相关知识。