gpt4 book ai didi

windows - 查找应用程序使用的 TCP 端口

转载 作者:可可西里 更新时间:2023-11-01 02:30:36 25 4
gpt4 key购买 nike

好吧,我正在扩展我公司的 flexlm 供应商守护程序,以便向客户端应用程序显示更多信息。

我需要能够在客户端连接之前找出 lmgrd 正在监听的端口。 API 文档似乎相当贫乏,我相信他们将大部分代码保存在编译后的形式中,所以我不能只查看它们的源代码。

是否可以调用 Windows API 的强大功能来找出特定进程正在使用的端口?如果 Sysinternals 的 Process Explorer 可以做到,我应该可以,对吧?什么是一些示例代码?

它需要支持 Windows XP 及更高版本,因为我们的许多客户尚未升级。

我应该注意到,事实证明 FLEX 支持从许可证文件中提取端口。我手边没有代码,但我知道这不是找出您的供应商守护程序/lmgrd 正在运行哪些端口的最佳方法。

最佳答案

GetTcpTable2——见下文

GetTcpTable2 function

GetTcpTable 函数检索 IPv4 TCP 连接表。

这将填充 MIB_TCPTABLE 结构。

typedef struct _MIB_TCPTABLE {
DWORD dwNumEntries;
MIB_TCPROW table[ANY_SIZE];
} MIB_TCPTABLE, *PMIB_TCPTABLE;

现在是 MIB_TCPROW

typedef struct _MIB_TCPROW {
DWORD dwState;
DWORD dwLocalAddr;
DWORD dwLocalPort;
DWORD dwRemoteAddr;
DWORD dwRemotePort;
} MIB_TCPROW, *PMIB_TCPROW;

重要:

您还需要使用 GetTcpTable2 来获取关联的相应 PID。

typedef struct _MIB_TCPROW2 {
DWORD dwState;
DWORD dwLocalAddr;
DWORD dwLocalPort;
DWORD dwRemoteAddr;
DWORD dwRemotePort;
DWORD dwOwningPid;
TCP_CONNECTION_OFFLOAD_STATE dwOffloadState;
} MIB_TCPROW2, *PMIB_TCPROW2;

dwOwningPid

关于windows - 查找应用程序使用的 TCP 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6499845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com