Visual C++ 7.1Visual Studio 6Visual C++ 7.0Windows 2003Windows 2000Visual C++ 6.0Windows XPMFC中级开发Visual StudioWindowsC++
增强的 netstat






4.64/5 (10投票s)
2003年11月17日

142180

3795
本文展示了 IP Helper API 的主要 TCP/UDP 函数的实现,用于获取有关活动连接的信息,包括附加到连接的进程。
引言
这个项目的核心思想已经被一些人实现并展示过了:使用 GetTcpTable
和 GetUdpTable
来读取运行进程的连接状态。 另一件在这类文章中提到的事情是来自 iphlpapi.dll 的两个未公开的 API:AllocateAndGetTcpExTableFromStack
和 AllocateAndGetUdpExTableFromStack
。 使用这些 API,我们可以访问持有运行连接的进程的名称。 不幸的是,它仅适用于 Win2000、WinXP 或更高版本。
描述
首先,我想提到一下这个主题方面的新进展。Enetstat
将允许用户使用以下 API 函数关闭任何“已建立”的连接
DWORD SetTcpEntry( PMIB_TCPROW pTcpRow );
对于已建立的连接,我们可以使用以下状态关闭它:MIB_TCP_STATE_DELETE_TCB
。
MIB_TCPROW sKillConn;
sKillConn.dwLocalAddr = (DWORD)ulLocIP; //local ip
sKillConn.dwLocalPort = (DWORD)usLocalPort; //local port
sKillConn.dwRemoteAddr = (DWORD)ulRemIP; //remote ip
sKillConn.dwRemotePort = (DWORD)usRemPort; //remote port
sKillConn.dwState = MIB_TCP_STATE_DELETE_TCB;
DWORD dwRez = SetTcpEntry(&sKillConn);
这就是全部内容。我的代码没有详细描述,我认为没有必要这样做,因为我们已经有了 Axel Charpentier 制作的简洁而详细的描述。Axel Charpentier。
好的,如果您需要关于这个主题的任何好的参考,您可以在这里找到它