Click here to Skip to main content
15,867,453 members
Articles / Desktop Programming / MFC
Article

Enhance netstat

Rate me:
Please Sign up or sign in to vote.
4.64/5 (11 votes)
16 Nov 2003 136.9K   3.8K   36   29
This article shows an implementation of the main TCP/UDP functions of the IP Helper API that is used to get info about active connections including the process attached to a connection.

Sample Image - enetstat.jpg

Introduction

The main idea of this project was already implemented and presented by some guys around here: using GetTcpTable and GetUdpTable to read connection states of running processes. Yet another thing that is mentioned in this kind of articles are two undocumented APIs from iphlpapi.dll: AllocateAndGetTcpExTableFromStack and AllocateAndGetUdpExTableFromStack. Using these APIs, we can get access to the name of the process that holds the running connection. Unfortunately it does work only with Win2000, WinXP or newer versions.

Description

First of all, I'd like to mention there is something new regarding this subject. Enetstat will allow the user to close any "established" connection using the following API function:

DWORD SetTcpEntry(
  PMIB_TCPROW pTcpRow
);

Having an established connection, we can close it using the following state: MIB_TCP_STATE_DELETE_TCB.

C++
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);

That's all about it. My piece of code is not described in detail and I suppose there is no need for that as long as we already have a cool and detailed description made by Axel Charpentier.

Well, if you need any good reference about this subject you'll find it here:

Getting active TCP/UDP connections on a box, by Axel Charpentier.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
Romania Romania
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralMy vote of 5 Pin
Giovefi20-Sep-12 13:40
Giovefi20-Sep-12 13:40 
This is really what I was looking for... and is well structured too !!
QuestionAlways 87!!! Pin
eRRaTuM16-Mar-08 4:18
eRRaTuM16-Mar-08 4:18 
GeneralNot in 2000, deprecated in Vista Pin
ldsandon6-Dec-06 0:44
ldsandon6-Dec-06 0:44 
GeneralRe: Not in 2000, deprecated in Vista Pin
y0da6-Dec-06 1:01
y0da6-Dec-06 1:01 
GeneralRe: Not in 2000, deprecated in Vista Pin
Leo Davidson28-Mar-09 1:48
Leo Davidson28-Mar-09 1:48 
Generalprinter Pin
Kutti Ra30-Sep-05 15:59
Kutti Ra30-Sep-05 15:59 
GeneralMonitoring Internet client Pin
Kutti Ra30-Sep-05 15:56
Kutti Ra30-Sep-05 15:56 
GeneralTcpTable does not return all connections Pin
bigga16-Sep-05 4:16
bigga16-Sep-05 4:16 
GeneralRe: TcpTable does not return all connections Pin
y0da16-Sep-05 4:32
y0da16-Sep-05 4:32 
QuestionWhat about speed ? Pin
Smart K85-Feb-05 21:29
professionalSmart K85-Feb-05 21:29 
AnswerRe: What about speed ? Pin
y0da5-Feb-05 22:25
y0da5-Feb-05 22:25 
GeneralRe: What about speed ? Pin
Smart K86-Feb-05 22:18
professionalSmart K86-Feb-05 22:18 
Generalstack Memory Leak Pin
Member 39200426-Jan-05 15:43
Member 39200426-Jan-05 15:43 
GeneralRe: stack Memory Leak Pin
y0da26-Jan-05 20:22
y0da26-Jan-05 20:22 
GeneralRe: stack Memory Leak Pin
Member 39200427-Jan-05 15:17
Member 39200427-Jan-05 15:17 
GeneralRe: stack Memory Leak Pin
y0da27-Jan-05 20:19
y0da27-Jan-05 20:19 
Generalenetstat on winnt and Win2k and NT4 Pin
y0da27-Apr-04 20:25
y0da27-Apr-04 20:25 
GeneralAllocateAndGetTcpExTableFromStack for Windows 2000 Pin
blakeo2314-Apr-04 8:39
blakeo2314-Apr-04 8:39 
GeneralRe: AllocateAndGetTcpExTableFromStack for Windows 2000 Pin
Anonymous14-Apr-04 20:01
Anonymous14-Apr-04 20:01 
GeneralRe: AllocateAndGetTcpExTableFromStack for Windows 2000 Pin
blakeo2315-Apr-04 0:10
blakeo2315-Apr-04 0:10 
QuestionHow to close UDP ports ? Pin
marcosvelasco16-Dec-03 5:21
marcosvelasco16-Dec-03 5:21 
AnswerRe: How to close UDP ports ? Pin
Anonymous19-Dec-03 10:29
Anonymous19-Dec-03 10:29 
GeneralA free tool called Active Ports can work under Windows 2K Pin
Member 39201419-Nov-03 19:25
Member 39201419-Nov-03 19:25 
GeneralRe: A free tool called Active Ports can work under Windows 2K Pin
y0da20-Nov-03 0:30
y0da20-Nov-03 0:30 
GeneralWindows 2000 and XP... Pin
marcosvelasco18-Nov-03 7:00
marcosvelasco18-Nov-03 7:00 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.