Windowsでのプロセスネットワークリンクの取得状況(開いているリスニングポート番号を含む)
Windowsでは一般的にIP HelperシリーズAPIインタフェースでネットワーク状態を取得しているが,リンク状況を取得するインタフェースはGetExtendedTcpTableである
MSDNのアドレスは次のとおりです.http://msdn.microsoft.com/en-us/library/windows/desktop/aa365928(v=vs.85).aspx
空のBuffer(*pdwSize=0)を先に渡し、ERROR_を返します.INSUFFICIENT_BUFFER、*pdwSizeに必要なBufferサイズが入っています.
ulAf:IPアドレスv 4かv 6かAF_INET、AF_INET6
TableClass,AF_についてINET:
TableClass value
pTcpTable structure
TCP_TABLE_BASIC_ALL
MIB_TCPTABLE
TCP_TABLE_BASIC_CONNECTIONS
MIB_TCPTABLE
TCP_TABLE_BASIC_LISTENER
MIB_TCPTABLE
TCP_TABLE_OWNER_MODULE_ALL
MIB_TCPTABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_CONNECTIONS
MIB_TCPTABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_LISTENER
MIB_TCPTABLE_OWNER_MODULE
TCP_TABLE_OWNER_PID_ALL
MIB_TCPTABLE_OWNER_PID
TCP_TABLE_OWNER_PID_CONNECTIONS
MIB_TCPTABLE_OWNER_PID
TCP_TABLE_OWNER_PID_LISTENER
MIB_TCPTABLE_OWNER_PID
AF_についてINET6:
TableClass value
pTcpTable structure
TCP_TABLE_BASIC_ALL
MIB_TCP6TABLE
TCP_TABLE_BASIC_CONNECTIONS
MIB_TCP6TABLE
TCP_TABLE_BASIC_LISTENER
MIB_TCP6TABLE
TCP_TABLE_OWNER_MODULE_ALL
MIB_TCP6TABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_CONNECTIONS
MIB_TCP6TABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_LISTENER
MIB_TCP6TABLE_OWNER_MODULE
TCP_TABLE_OWNER_PID_ALL
MIB_TCP6TABLE_OWNER_PID
TCP_TABLE_OWNER_PID_CONNECTIONS
MIB_TCP6TABLE_OWNER_PID
TCP_TABLE_OWNER_PID_LISTENER
MIB_TCP6TABLE_OWNER_PID
MIB_TCPTABLE_OWNER_PID
MIB_TCPROW_OWNER_PID
DWORD GetExtendedTcpTable(
__out PVOID pTcpTable,
__inout PDWORD pdwSize,
__in BOOL bOrder,
__in ULONG ulAf,
__in TCP_TABLE_CLASS TableClass,
__in ULONG Reserved
);
MSDNのアドレスは次のとおりです.http://msdn.microsoft.com/en-us/library/windows/desktop/aa365928(v=vs.85).aspx
空のBuffer(*pdwSize=0)を先に渡し、ERROR_を返します.INSUFFICIENT_BUFFER、*pdwSizeに必要なBufferサイズが入っています.
ulAf:IPアドレスv 4かv 6かAF_INET、AF_INET6
TableClass,AF_についてINET:
TableClass value
pTcpTable structure
TCP_TABLE_BASIC_ALL
MIB_TCPTABLE
TCP_TABLE_BASIC_CONNECTIONS
MIB_TCPTABLE
TCP_TABLE_BASIC_LISTENER
MIB_TCPTABLE
TCP_TABLE_OWNER_MODULE_ALL
MIB_TCPTABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_CONNECTIONS
MIB_TCPTABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_LISTENER
MIB_TCPTABLE_OWNER_MODULE
TCP_TABLE_OWNER_PID_ALL
MIB_TCPTABLE_OWNER_PID
TCP_TABLE_OWNER_PID_CONNECTIONS
MIB_TCPTABLE_OWNER_PID
TCP_TABLE_OWNER_PID_LISTENER
MIB_TCPTABLE_OWNER_PID
AF_についてINET6:
TableClass value
pTcpTable structure
TCP_TABLE_BASIC_ALL
MIB_TCP6TABLE
TCP_TABLE_BASIC_CONNECTIONS
MIB_TCP6TABLE
TCP_TABLE_BASIC_LISTENER
MIB_TCP6TABLE
TCP_TABLE_OWNER_MODULE_ALL
MIB_TCP6TABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_CONNECTIONS
MIB_TCP6TABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_LISTENER
MIB_TCP6TABLE_OWNER_MODULE
TCP_TABLE_OWNER_PID_ALL
MIB_TCP6TABLE_OWNER_PID
TCP_TABLE_OWNER_PID_CONNECTIONS
MIB_TCP6TABLE_OWNER_PID
TCP_TABLE_OWNER_PID_LISTENER
MIB_TCP6TABLE_OWNER_PID
MIB_TCPTABLE_OWNER_PID
typedef struct {
DWORD dwNumEntries;
MIB_TCPROW_OWNER_PID table[ANY_SIZE];
} MIB_TCPTABLE_OWNER_PID, *PMIB_TCPTABLE_OWNER_PID;
MIB_TCPROW_OWNER_PID
typedef struct _MIB_TCPROW_OWNER_PID {
DWORD dwState;
DWORD dwLocalAddr;
DWORD dwLocalPort;
DWORD dwRemoteAddr;
DWORD dwRemotePort;
DWORD dwOwningPid;
} MIB_TCPROW_OWNER_PID, *PMIB_TCPROW_OWNER_PID;