65.9K
CodeProject 正在变化。 阅读更多。
Home

增强的 netstat

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.64/5 (10投票s)

2003年11月17日

viewsIcon

142180

downloadIcon

3795

本文展示了 IP Helper API 的主要 TCP/UDP 函数的实现,用于获取有关活动连接的信息,包括附加到连接的进程。

Sample Image - enetstat.jpg

引言

这个项目的核心思想已经被一些人实现并展示过了:使用 GetTcpTableGetUdpTable 来读取运行进程的连接状态。 另一件在这类文章中提到的事情是来自 iphlpapi.dll 的两个未公开的 API:AllocateAndGetTcpExTableFromStackAllocateAndGetUdpExTableFromStack。 使用这些 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

好的,如果您需要关于这个主题的任何好的参考,您可以在这里找到它

获取机器上的活动 TCP/UDP 连接,作者:Axel Charpentier

© . All rights reserved.