【发布时间】:2013-01-28 05:57:51
【问题描述】:
我通过GetTcpTable()找到了端口号和进程ID,PID只识别进程,但我希望进程内的服务,如svchost.exe实际上正在使用该端口.... sysinternals“procexp”工具在“TCP/IP”选项卡下显示 TCP/IP 端口以及使用这些端口的服务... 我想知道应该使用什么win32 api来实现这样的功能? 或者如何通过其他方式实现?
【问题讨论】:
我通过GetTcpTable()找到了端口号和进程ID,PID只识别进程,但我希望进程内的服务,如svchost.exe实际上正在使用该端口.... sysinternals“procexp”工具在“TCP/IP”选项卡下显示 TCP/IP 端口以及使用这些端口的服务... 我想知道应该使用什么win32 api来实现这样的功能? 或者如何通过其他方式实现?
【问题讨论】:
首先从带有 TCP_TABLE_OWNER_MODULE_ALL 标志的 TCP 或 UDP 等表中查询端口信息,您将获得带有信息的表。现在将表格中的每一行发送到GetOwnerModuleFromTcpEntry(),它属于IpHlper API。现在您将获得 ModuleName ,它是在给定端口上运行的进程名称或服务名称。
现在,您可以从此 moduleName 检索有关服务或进程的其他信息。
【讨论】: