【问题标题】:how to drop packets from specific source IP address on c#如何在c#上从特定源IP地址丢弃数据包
【发布时间】:2015-06-22 23:44:19
【问题描述】:

我想编写一个应用程序,用于从某个特定的 srcIP 地址丢弃一些数据包。

我的意思是我想在 Windows 系统上编写和运行一个应用程序,该应用程序检查来自该系统上运行的其他应用程序的所有数据包发送请求,并获取该发送请求的 srcIP 地址并将其与 IP 地址进行比较;如果 IP 地址不是 XXX.XXX.XXX.XXX,则在发送之前丢弃数据包。

谁能帮我找到方法吗?

有人知道它的 c# 源码吗?

谢谢

【问题讨论】:

    标签: c# windows network-programming packet


    【解决方案1】:

    您所描述的本质上是一条防火墙规则。

    如果您不希望从控制面板中的 Windows 防火墙手动设置此类规则,您可以使用 the API 以编程方式进行设置。您可以从控制面板手动对防火墙执行的所有操作都可以通过 API 完成。

    另一种选择是实现Winsock LSP。看起来这些 API 已被弃用(并且有充分的理由)

    【讨论】:

    • 是的,你是对的,但不完全是.. 如果请求 IP 地址是特定的,我希望启用阻止规则。这是防火墙规则无法定义的。我对吗 ? (我对winsock LSP一无所知,它也能解决这个问题吗?)
    • 可以使用防火墙规则执行此操作。你只需要发挥创造力。只需创建一个规则,阻止远程服务器端口的所有内容,防火墙规则的范围部分除外,指定两个 IP 地址范围。第一个是从 0.0.0.0 到 a.b.c.[d-1] 的每个 IP,以及从 a.b.c.[d+1] 到 255.255.255.255 的另一个规则。我相信这对你有用。
    猜你喜欢
    • 2015-03-18
    • 2016-05-24
    • 2013-07-19
    • 2011-01-30
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多