ReactOS 0.4.15-dev-7670-g69b08be
netstat.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  MIB_TCPEXROW
 
struct  MIB_TCPEXTABLE
 
struct  MIB_UDPEXROW
 
struct  MIB_UDPEXTABLE
 

Macros

#define HOSTNAMELEN   256
 
#define PORTNAMELEN   256
 
#define ADDRESSLEN   HOSTNAMELEN+PORTNAMELEN
 

Typedefs

typedef struct MIB_TCPEXROWPMIB_TCPEXROW
 
typedef struct MIB_TCPEXTABLEPMIB_TCPEXTABLE
 
typedef struct MIB_UDPEXROWPMIB_UDPEXROW
 
typedef struct MIB_UDPEXTABLEPMIB_UDPEXTABLE
 

Functions

VOID ShowIpStatistics (VOID)
 
VOID ShowIcmpStatistics (VOID)
 
VOID ShowTcpStatistics (VOID)
 
VOID ShowUdpStatistics (VOID)
 
VOID ShowEthernetStatistics (VOID)
 
BOOL ShowTcpTable (VOID)
 
BOOL ShowUdpTable (VOID)
 
PCHAR GetPortName (UINT Port, PCSTR Proto, CHAR Name[], INT NameLen)
 
PCHAR GetIpHostName (BOOL Local, UINT IpAddr, CHAR Name[], INT NameLen)
 

Variables

BOOL bNoOptions = FALSE
 
BOOL bDoShowAllCons = FALSE
 
BOOL bDoShowProcName = FALSE
 
BOOL bDoShowEthStats = FALSE
 
BOOL bDoShowNumbers = FALSE
 
BOOL bDoShowProcessId = FALSE
 
BOOL bDoShowProtoCons = FALSE
 
BOOL bDoShowRouteTable = FALSE
 
BOOL bDoShowProtoStats = FALSE
 
BOOL bDoDispSeqComp = FALSE
 
BOOL bLoopOutput = FALSE
 

Macro Definition Documentation

◆ ADDRESSLEN

#define ADDRESSLEN   HOSTNAMELEN+PORTNAMELEN

Definition at line 6 of file netstat.h.

◆ HOSTNAMELEN

#define HOSTNAMELEN   256

Definition at line 4 of file netstat.h.

◆ PORTNAMELEN

#define PORTNAMELEN   256

Definition at line 5 of file netstat.h.

Typedef Documentation

◆ PMIB_TCPEXROW

◆ PMIB_TCPEXTABLE

◆ PMIB_UDPEXROW

◆ PMIB_UDPEXTABLE

Function Documentation

◆ GetIpHostName()

PCHAR GetIpHostName ( BOOL  Local,
UINT  IpAddr,
CHAR  Name[],
INT  NameLen 
)

Definition at line 540 of file netstat.c.

541{
542// struct hostent *phostent;
543 UINT nIpAddr;
544
545 /* display dotted decimal */
546 nIpAddr = htonl(IpAddr);
547 if (bDoShowNumbers) {
548 sprintf(Name, "%d.%d.%d.%d",
549 (nIpAddr >> 24) & 0xFF,
550 (nIpAddr >> 16) & 0xFF,
551 (nIpAddr >> 8) & 0xFF,
552 (nIpAddr) & 0xFF);
553 return Name;
554 }
555
556 Name[0] = '\0';
557
558 /* try to resolve the name */
559 if (!IpAddr) {
560 if (!Local) {
561 sprintf(Name, "%d.%d.%d.%d",
562 (nIpAddr >> 24) & 0xFF,
563 (nIpAddr >> 16) & 0xFF,
564 (nIpAddr >> 8) & 0xFF,
565 (nIpAddr) & 0xFF);
566 } else {
567 if (gethostname(Name, NameLen) != 0)
569 }
570 } else if (IpAddr == 0x0100007f) {
571 if (Local) {
572 if (gethostname(Name, NameLen) != 0)
574 } else {
575 strncpy(Name, "localhost", 10);
576 }
577// } else if (phostent = gethostbyaddr((char*)&ipaddr, sizeof(nipaddr), PF_INET)) {
578// strcpy(name, phostent->h_name);
579 } else {
580 sprintf(Name, "%d.%d.%d.%d",
581 ((nIpAddr >> 24) & 0x000000FF),
582 ((nIpAddr >> 16) & 0x000000FF),
583 ((nIpAddr >> 8) & 0x000000FF),
584 ((nIpAddr) & 0x000000FF));
585 }
586 return Name;
587}
char * strncpy(char *DstString, const char *SrcString, ACPI_SIZE Count)
Definition: utclib.c:427
struct NameRec_ * Name
Definition: cdprocs.h:460
INT WSAAPI gethostname(OUT char FAR *name, IN INT namelen)
Definition: getxbyxx.c:397
#define htonl(x)
Definition: module.h:214
#define sprintf(buf, format,...)
Definition: sprintf.c:55
unsigned int UINT
Definition: ndis.h:50
VOID DoFormatMessage(DWORD ErrorCode)
Definition: netstat.c:52
BOOL bDoShowNumbers
Definition: netstat.h:13
int PASCAL FAR WSAGetLastError(void)
Definition: dllmain.c:112

Referenced by ShowTcpTable(), and ShowUdpTable().

◆ GetPortName()

PCHAR GetPortName ( UINT  Port,
PCSTR  Proto,
CHAR  Name[],
INT  NameLen 
)

Definition at line 519 of file netstat.c.

520{
521 struct servent *pServent;
522
523 if (bDoShowNumbers)
524 {
525 sprintf(Name, "%d", htons((WORD)Port));
526 return Name;
527 }
528 /* Try to translate to a name */
529 if ((pServent = getservbyport(Port, Proto)))
530 strcpy(Name, pServent->s_name);
531 else
532 sprintf(Name, "%d", htons((WORD)Port));
533 return Name;
534}
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
unsigned short WORD
Definition: ntddk_ex.h:93
PSERVENT WSAAPI getservbyport(IN int port, IN const char FAR *proto)
Definition: getxbyxx.c:431
CPPORT Port[4]
Definition: headless.c:35
#define htons(x)
Definition: module.h:215
char * s_name
Definition: winsock.h:159

Referenced by ShowTcpTable(), and ShowUdpTable().

◆ ShowEthernetStatistics()

VOID ShowEthernetStatistics ( VOID  )

Definition at line 350 of file netstat.c.

351{
352 PMIB_IFTABLE pIfTable;
353 DWORD dwSize = 0;
354 DWORD dwRetVal = 0;
355
356 pIfTable = (MIB_IFTABLE*)HeapAlloc(GetProcessHeap(), 0, sizeof(MIB_IFTABLE));
357
358 if (GetIfTable(pIfTable, &dwSize, 0) == ERROR_INSUFFICIENT_BUFFER)
359 {
360 HeapFree(GetProcessHeap(), 0, pIfTable);
361 pIfTable = (MIB_IFTABLE*)HeapAlloc(GetProcessHeap(), 0, dwSize);
362
363 if ((dwRetVal = GetIfTable(pIfTable, &dwSize, 0)) == NO_ERROR)
364 {
368 pIfTable->table[0].dwInOctets, pIfTable->table[0].dwOutOctets);
370 pIfTable->table[0].dwInUcastPkts, pIfTable->table[0].dwOutUcastPkts);
372 pIfTable->table[0].dwInNUcastPkts, pIfTable->table[0].dwOutNUcastPkts);
374 pIfTable->table[0].dwInDiscards, pIfTable->table[0].dwOutDiscards);
376 pIfTable->table[0].dwInErrors, pIfTable->table[0].dwOutErrors);
378 pIfTable->table[0].dwInUnknownProtos);
379 }
380 else
381 {
382 DoFormatMessage(dwRetVal);
383 }
384 }
385 HeapFree(GetProcessHeap(), 0, pIfTable);
386}
#define StdOut
Definition: fc.c:14
void ConResPrintf(FILE *fp, UINT nID,...)
Definition: fc.c:33
void ConResPuts(FILE *fp, UINT nID)
Definition: fc.c:27
#define IDS_ETHERNET_NON_UNICAST_PACKET
Definition: resource.h:69
#define IDS_ETHERNET_BYTES
Definition: resource.h:67
#define IDS_ETHERNET_DISCARD
Definition: resource.h:70
#define IDS_ETHERNET_INTERFACE_STAT
Definition: resource.h:65
#define IDS_ETHERNET_UNKNOWN
Definition: resource.h:72
#define IDS_ETHERNET_THEADER
Definition: resource.h:66
#define IDS_ETHERNET_UNICAST_PACKET
Definition: resource.h:68
#define IDS_ETHERNET_ERROR
Definition: resource.h:71
#define NO_ERROR
Definition: dderror.h:5
#define ERROR_INSUFFICIENT_BUFFER
Definition: dderror.h:10
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
unsigned long DWORD
Definition: ntddk_ex.h:95
struct _MIB_IFTABLE MIB_IFTABLE
DWORD WINAPI GetIfTable(PMIB_IFTABLE pIfTable, PULONG pdwSize, BOOL bOrder)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
DWORD dwOutErrors
Definition: ifmib.h:57
DWORD dwOutNUcastPkts
Definition: ifmib.h:55
DWORD dwInOctets
Definition: ifmib.h:47
DWORD dwInDiscards
Definition: ifmib.h:50
DWORD dwInUcastPkts
Definition: ifmib.h:48
DWORD dwInErrors
Definition: ifmib.h:51
DWORD dwInUnknownProtos
Definition: ifmib.h:52
DWORD dwOutOctets
Definition: ifmib.h:53
DWORD dwOutDiscards
Definition: ifmib.h:56
DWORD dwOutUcastPkts
Definition: ifmib.h:54
DWORD dwInNUcastPkts
Definition: ifmib.h:49
MIB_IFROW table[1]
Definition: ifmib.h:66

Referenced by DisplayOutput().

◆ ShowIcmpStatistics()

VOID ShowIcmpStatistics ( VOID  )

Definition at line 266 of file netstat.c.

267{
268 MIB_ICMP IcmpStats;
269 DWORD dwRetVal;
270
271 if ((dwRetVal = GetIcmpStatistics(&IcmpStats)) == NO_ERROR)
272 {
276 IcmpStats.stats.icmpInStats.dwMsgs, IcmpStats.stats.icmpOutStats.dwMsgs);
278 IcmpStats.stats.icmpInStats.dwErrors, IcmpStats.stats.icmpOutStats.dwErrors);
290 IcmpStats.stats.icmpInStats.dwEchos, IcmpStats.stats.icmpOutStats.dwEchos);
301 }
302 else
303 {
304 DoFormatMessage(dwRetVal);
305 }
306}
#define IDS_ICMP_MSG
Definition: resource.h:36
#define IDS_ICMP_DEST_UNREACH
Definition: resource.h:38
#define IDS_ICMP_ECHO_REPLY
Definition: resource.h:44
#define IDS_ICMP_ADDRESSS_MASK
Definition: resource.h:47
#define IDS_ICMP_SRC_QUENCHES
Definition: resource.h:41
#define IDS_ICMP_ADDRESSS_MASK_REPLY
Definition: resource.h:48
#define IDS_ICMP_TIMESTAMP
Definition: resource.h:45
#define IDS_ICMP_ECHO
Definition: resource.h:43
#define IDS_ICMP_TIMESTAMP_REPLY
Definition: resource.h:46
#define IDS_ICMP4_STAT_HEADER
Definition: resource.h:8
#define IDS_ICMP_ERROR
Definition: resource.h:37
#define IDS_ICMP_THEADER
Definition: resource.h:9
#define IDS_ICMP_PARAM_PROBLEM
Definition: resource.h:40
#define IDS_ICMP_TIME_EXCEED
Definition: resource.h:39
#define IDS_ICMP_REDIRECT
Definition: resource.h:42
DWORD WINAPI GetIcmpStatistics(PMIB_ICMP pStats)
MIBICMPSTATS icmpOutStats
Definition: ipmib.h:194
MIBICMPSTATS icmpInStats
Definition: ipmib.h:193
DWORD dwTimeExcds
Definition: ipmib.h:179
DWORD dwAddrMasks
Definition: ipmib.h:187
DWORD dwEchoReps
Definition: ipmib.h:184
DWORD dwParmProbs
Definition: ipmib.h:180
DWORD dwAddrMaskReps
Definition: ipmib.h:188
DWORD dwSrcQuenchs
Definition: ipmib.h:181
DWORD dwTimestamps
Definition: ipmib.h:185
DWORD dwRedirects
Definition: ipmib.h:182
DWORD dwMsgs
Definition: ipmib.h:176
DWORD dwErrors
Definition: ipmib.h:177
DWORD dwEchos
Definition: ipmib.h:183
DWORD dwTimestampReps
Definition: ipmib.h:186
DWORD dwDestUnreachs
Definition: ipmib.h:178
MIBICMPINFO stats
Definition: ipmib.h:199

Referenced by DisplayOutput().

◆ ShowIpStatistics()

VOID ShowIpStatistics ( VOID  )

Definition at line 234 of file netstat.c.

235{
236 MIB_IPSTATS IpStats;
237 DWORD dwRetVal;
238
239 if ((dwRetVal = GetIpStatistics(&IpStats)) == NO_ERROR)
240 {
259 }
260 else
261 {
262 DoFormatMessage(dwRetVal);
263 }
264}
#define IDS_IP_DATAG_FRAG_CREATE
Definition: resource.h:34
#define IDS_IP_OUT_REQUEST
Definition: resource.h:25
#define IDS_IP_DATAG_FRAG_SUCCESS
Definition: resource.h:32
#define IDS_IP_REC_PACK_DISCARD
Definition: resource.h:23
#define IDS_IP_DISCARD_OUT_PACK
Definition: resource.h:27
#define IDS_IP_DATAG_FWD
Definition: resource.h:21
#define IDS_IP_UNKNOWN_PRO_REC
Definition: resource.h:22
#define IDS_IP_REASSEMBLE_FAILURE
Definition: resource.h:31
#define IDS_IP_ADDR_REC_ERROR
Definition: resource.h:20
#define IDS_IP_REASSEMBLE_REQUIRED
Definition: resource.h:29
#define IDS_IP_HEAD_REC_ERROR
Definition: resource.h:19
#define IDS_IP_REASSEMBLE_SUCCESS
Definition: resource.h:30
#define IDS_IP_ROUTE_DISCARD
Definition: resource.h:26
#define IDS_IP_OUT_PACKET_NO_ROUTE
Definition: resource.h:28
#define IDS_IP_REC_PACK_DELIVER
Definition: resource.h:24
#define IDS_IP4_STAT_HEADER
Definition: resource.h:7
#define IDS_IP_PACK_REC
Definition: resource.h:18
#define IDS_IP_DATAG_FRAG_FAILURE
Definition: resource.h:33
DWORD WINAPI GetIpStatistics(PMIB_IPSTATS pStats)
DWORD dwInReceives
Definition: ipmib.h:148
DWORD dwInAddrErrors
Definition: ipmib.h:150
DWORD dwFragOks
Definition: ipmib.h:163
DWORD dwReasmOks
Definition: ipmib.h:161
DWORD dwOutNoRoutes
Definition: ipmib.h:158
DWORD dwInDelivers
Definition: ipmib.h:154
DWORD dwRoutingDiscards
Definition: ipmib.h:156
DWORD dwReasmReqds
Definition: ipmib.h:160
DWORD dwOutDiscards
Definition: ipmib.h:157
DWORD dwInHdrErrors
Definition: ipmib.h:149
DWORD dwForwDatagrams
Definition: ipmib.h:151
DWORD dwInDiscards
Definition: ipmib.h:153
DWORD dwOutRequests
Definition: ipmib.h:155
DWORD dwFragCreates
Definition: ipmib.h:165
DWORD dwInUnknownProtos
Definition: ipmib.h:152
DWORD dwReasmFails
Definition: ipmib.h:162
DWORD dwFragFails
Definition: ipmib.h:164

Referenced by DisplayOutput().

◆ ShowTcpStatistics()

VOID ShowTcpStatistics ( VOID  )

Definition at line 308 of file netstat.c.

309{
311 DWORD dwRetVal;
312
313 if ((dwRetVal = GetTcpStatistics(&tcpStats)) == NO_ERROR)
314 {
324 }
325 else
326 {
327 DoFormatMessage(dwRetVal);
328 }
329}
#define IDS_TCP_RESET_CONNECT
Definition: resource.h:53
#define IDS_TCP_CURRENT_CONNECT
Definition: resource.h:54
#define IDS_TCP_SEG_SENT
Definition: resource.h:56
#define IDS_TCP_SEG_RETRANSMIT
Definition: resource.h:57
#define IDS_TCP_ACTIVE_OPEN
Definition: resource.h:50
#define IDS_TCP_PASS_OPEN
Definition: resource.h:51
#define IDS_TCP_FAIL_CONNECT
Definition: resource.h:52
#define IDS_TCP_SEG_RECEIVE
Definition: resource.h:55
#define IDS_TCP4_HEADER
Definition: resource.h:10
static MIB_TCPSTATS tcpStats
Definition: main.c:1076
DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS pStats)
DWORD dwPassiveOpens
Definition: tcpmib.h:180
DWORD dwActiveOpens
Definition: tcpmib.h:179
DWORD dwRetransSegs
Definition: tcpmib.h:186
DWORD dwInSegs
Definition: tcpmib.h:184
DWORD dwOutSegs
Definition: tcpmib.h:185
DWORD dwEstabResets
Definition: tcpmib.h:182
DWORD dwCurrEstab
Definition: tcpmib.h:183
DWORD dwAttemptFails
Definition: tcpmib.h:181

Referenced by DisplayOutput().

◆ ShowTcpTable()

BOOL ShowTcpTable ( VOID  )

Definition at line 388 of file netstat.c.

389{
392 DWORD i;
393 CHAR HostIp[HOSTNAMELEN], HostPort[PORTNAMELEN];
394 CHAR RemoteIp[HOSTNAMELEN], RemotePort[PORTNAMELEN];
395 CHAR Host[ADDRESSLEN];
397 CHAR PID[64];
398
399 /* Get the table of TCP endpoints */
401 /* Should also work when we get new connections between 2 GetTcpTable()
402 * calls: */
403 do
404 {
407 if (error != NO_ERROR)
408 HeapFree(GetProcessHeap(), 0, tcpTable);
409 }
411
412 if (error != NO_ERROR)
413 {
416 return FALSE;
417 }
418
419 /* Dump the TCP table */
420 for (i = 0; i < tcpTable->dwNumEntries; i++)
421 {
422 /* If we aren't showing all connections, only display established, close wait
423 * and time wait. This is the default output for netstat */
424 if (bDoShowAllCons || (tcpTable->table[i].dwState == MIB_TCP_STATE_ESTAB)
425 || (tcpTable->table[i].dwState == MIB_TCP_STATE_CLOSE_WAIT)
426 || (tcpTable->table[i].dwState == MIB_TCP_STATE_TIME_WAIT))
427 {
428 /* I've split this up so it's easier to follow */
429 GetIpHostName(TRUE, tcpTable->table[i].dwLocalAddr, HostIp, sizeof(HostIp));
430 GetPortName(tcpTable->table[i].dwLocalPort, "tcp", HostPort, sizeof(HostPort));
431 sprintf(Host, "%s:%s", HostIp, HostPort);
432
433 if (tcpTable->table[i].dwState == MIB_TCP_STATE_LISTEN)
434 {
435 sprintf(Remote, "%s:0", HostIp);
436 }
437 else
438 {
439 GetIpHostName(FALSE, tcpTable->table[i].dwRemoteAddr, RemoteIp, sizeof(RemoteIp));
440 GetPortName(tcpTable->table[i].dwRemotePort, "tcp", RemotePort, sizeof(RemotePort));
441 sprintf(Remote, "%s:%s", RemoteIp, RemotePort);
442 }
443
445 {
446 sprintf(PID, "%ld", tcpTable->table[i].dwOwningPid);
447 }
448 else
449 {
450 PID[0] = 0;
451 }
452
453 ConPrintf(StdOut, L" %-6s %-22S %-22S %-11s %S\n", L"TCP",
454 Host, Remote, TcpState[tcpTable->table[i].dwState], PID);
455 }
456 }
457
458 HeapFree(GetProcessHeap(), 0, tcpTable);
459 return TRUE;
460}
void ConPrintf(FILE *fp, LPCWSTR psz,...)
Definition: fc.c:20
#define StdErr
Definition: fc.c:15
#define IDS_ERROR_TCP_SNAPSHOT
Definition: resource.h:14
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define AF_INET
Definition: tcpip.h:117
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
DWORD WINAPI GetExtendedTcpTable(PVOID pTcpTable, PDWORD pdwSize, BOOL bOrder, ULONG ulAf, TCP_TABLE_CLASS TableClass, ULONG Reserved)
@ TCP_TABLE_OWNER_PID_ALL
Definition: iprtrmib.h:35
#define error(str)
Definition: mkdosfs.c:1605
@ Remote
Definition: scrrun.idl:92
PCWSTR TcpState[]
Definition: netstat.c:33
PCHAR GetPortName(UINT Port, PCSTR Proto, CHAR Name[], INT NameLen)
Definition: netstat.c:519
PCHAR GetIpHostName(BOOL Local, UINT IpAddr, CHAR Name[], INT NameLen)
Definition: netstat.c:540
BOOL bDoShowAllCons
Definition: netstat.h:10
#define HOSTNAMELEN
Definition: netstat.h:4
BOOL bDoShowProcessId
Definition: netstat.h:14
#define PORTNAMELEN
Definition: netstat.h:5
#define ADDRESSLEN
Definition: netstat.h:6
#define L(x)
Definition: ntvdm.h:50
MIB_TCPROW_OWNER_PID table[1]
Definition: tcpmib.h:115
struct _MIB_TCPTABLE_OWNER_PID * PMIB_TCPTABLE_OWNER_PID
@ MIB_TCP_STATE_TIME_WAIT
Definition: tcpmib.h:38
@ MIB_TCP_STATE_ESTAB
Definition: tcpmib.h:32
@ MIB_TCP_STATE_LISTEN
Definition: tcpmib.h:29
@ MIB_TCP_STATE_CLOSE_WAIT
Definition: tcpmib.h:35
struct _MIB_TCPTABLE_OWNER_PID MIB_TCPTABLE_OWNER_PID
char CHAR
Definition: xmlstorage.h:175

Referenced by DisplayOutput().

◆ ShowUdpStatistics()

VOID ShowUdpStatistics ( VOID  )

Definition at line 331 of file netstat.c.

332{
334 DWORD dwRetVal;
335
336 if ((dwRetVal = GetUdpStatistics(&udpStats)) == NO_ERROR)
337 {
343 }
344 else
345 {
346 DoFormatMessage(dwRetVal);
347 }
348}
#define IDS_UDP_IP4_HEADER
Definition: resource.h:59
#define IDS_UDP_RECEIVE_ERROR
Definition: resource.h:62
#define IDS_UDP_DATAG_RECEIVE
Definition: resource.h:60
#define IDS_UDP_DATAG_SEND
Definition: resource.h:63
#define IDS_UDP_NO_PORT
Definition: resource.h:61
static MIB_UDPSTATS udpStats
Definition: main.c:1137
DWORD WINAPI GetUdpStatistics(PMIB_UDPSTATS pStats)
DWORD dwOutDatagrams
Definition: udpmib.h:81
DWORD dwInDatagrams
Definition: udpmib.h:78
DWORD dwNoPorts
Definition: udpmib.h:79
DWORD dwInErrors
Definition: udpmib.h:80

Referenced by DisplayOutput().

◆ ShowUdpTable()

BOOL ShowUdpTable ( VOID  )

Definition at line 462 of file netstat.c.

463{
466 DWORD i;
467 CHAR HostIp[HOSTNAMELEN], HostPort[PORTNAMELEN];
468 CHAR Host[ADDRESSLEN];
469 CHAR PID[64];
470
471 /* Get the table of UDP endpoints */
472 dwSize = 0;
475 {
478 return FALSE;
479 }
482 if (error)
483 {
487 return FALSE;
488 }
489
490 /* Dump the UDP table */
491 for (i = 0; i < udpTable->dwNumEntries; i++)
492 {
493 /* I've split this up so it's easier to follow */
494 GetIpHostName(TRUE, udpTable->table[i].dwLocalAddr, HostIp, sizeof(HostIp));
495 GetPortName(udpTable->table[i].dwLocalPort, "udp", HostPort, sizeof(HostPort));
496
497 sprintf(Host, "%s:%s", HostIp, HostPort);
498
500 {
501 sprintf(PID, "%ld", udpTable->table[i].dwOwningPid);
502 }
503 else
504 {
505 PID[0] = 0;
506 }
507
508 ConPrintf(StdOut, L" %-6s %-22S %-34s %S\n", L"UDP", Host, L"*:*", PID);
509 }
510
512 return TRUE;
513}
#define IDS_ERROR_UDP_ENDPOINT
Definition: resource.h:15
#define IDS_ERROR_UDP_ENDPOINT_TABLE
Definition: resource.h:16
#define NULL
Definition: types.h:112
static PMIB_UDPTABLE udpTable
Definition: main.c:1187
DWORD WINAPI GetExtendedUdpTable(PVOID pUdpTable, PDWORD pdwSize, BOOL bOrder, ULONG ulAf, UDP_TABLE_CLASS TableClass, ULONG Reserved)
@ UDP_TABLE_OWNER_PID
Definition: iprtrmib.h:44
DWORD dwLocalAddr
Definition: udpmib.h:28
DWORD dwLocalPort
Definition: udpmib.h:29
DWORD dwNumEntries
Definition: udpmib.h:34
MIB_UDPROW table[1]
Definition: udpmib.h:35
struct _MIB_UDPTABLE_OWNER_PID * PMIB_UDPTABLE_OWNER_PID

Referenced by DisplayOutput().

Variable Documentation

◆ bDoDispSeqComp

BOOL bDoDispSeqComp = FALSE

Definition at line 18 of file netstat.h.

Referenced by ParseCmdline().

◆ bDoShowAllCons

BOOL bDoShowAllCons = FALSE

Definition at line 10 of file netstat.h.

Referenced by DisplayOutput(), ParseCmdline(), and ShowTcpTable().

◆ bDoShowEthStats

BOOL bDoShowEthStats = FALSE

Definition at line 12 of file netstat.h.

Referenced by DisplayOutput(), and ParseCmdline().

◆ bDoShowNumbers

BOOL bDoShowNumbers = FALSE

Definition at line 13 of file netstat.h.

Referenced by GetIpHostName(), GetPortName(), and ParseCmdline().

◆ bDoShowProcessId

BOOL bDoShowProcessId = FALSE

Definition at line 14 of file netstat.h.

Referenced by DisplayTableHeader(), ParseCmdline(), ShowTcpTable(), and ShowUdpTable().

◆ bDoShowProcName

BOOL bDoShowProcName = FALSE

Definition at line 11 of file netstat.h.

Referenced by ParseCmdline().

◆ bDoShowProtoCons

BOOL bDoShowProtoCons = FALSE

Definition at line 15 of file netstat.h.

Referenced by DisplayOutput(), and ParseCmdline().

◆ bDoShowProtoStats

BOOL bDoShowProtoStats = FALSE

Definition at line 17 of file netstat.h.

Referenced by DisplayOutput(), and ParseCmdline().

◆ bDoShowRouteTable

BOOL bDoShowRouteTable = FALSE

Definition at line 16 of file netstat.h.

Referenced by DisplayOutput(), and ParseCmdline().

◆ bLoopOutput

BOOL bLoopOutput = FALSE

Definition at line 19 of file netstat.h.

Referenced by ParseCmdline(), and wmain().

◆ bNoOptions

BOOL bNoOptions = FALSE

Definition at line 9 of file netstat.h.

Referenced by DisplayOutput(), and ParseCmdline().