【问题标题】:How to track which network ports any program is trying to use?如何跟踪任何程序试图使用的网络端口?
【发布时间】:2011-06-10 15:35:22
【问题描述】:

我想看看任何程序正在做什么类型的连接,哪个端口以及查看程序的exe路径等。

我正在尝试实现某种防火墙通知系统,它会弹出一个窗口让我告诉我需要打开这个和那个端口才能使程序正常工作。

我该如何开始?

【问题讨论】:

    标签: c++ windows winapi networking network-programming


    【解决方案1】:

    您需要为愿意提供此功能的每个进程挂钩套接字 API,或者使用 WFP 和客户端应用程序编写一个过滤器,该应用程序从您的过滤器接收信息并显示一个通知窗口。

    【讨论】:

      【解决方案2】:

      查看Windows Filtering Platform (WFP) API。不确定您如何将网络活动与应用程序关联起来,但这是拦截它的正确位置。

      【讨论】:

      • +1。相关性可能发生在 ALE(参见inMetaValues 中的processId)。使用 PID,您可以轻松检索可执行路径和参数。
      【解决方案3】:

      netstat /o 为您提供每个网络连接的进程 ID,而 netstat /b 为您提供可执行文件名称。

      【讨论】:

      • 对,但这不会告诉您何时禁止网络访问,因为在发生故障的情况下,netstat 将看不到任何内容。在每次连接尝试时,您都需要一个可跟踪的事件。
      猜你喜欢
      • 2017-03-14
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 2021-09-30
      • 2014-06-14
      相关资源
      最近更新 更多