Windows で、プロセスが使用しているすべての開いているポート/ソケットを列挙する方法はありますか? アプリで高いポート使用率を追跡しようとしていますが、アプリはほとんど使用していないため、他の DLL がプロセスに読み込まれている必要があります。
質問する
766 次
1 に答える
3
Windows 独自のコマンドラインnetstat
ユーティリティと SysInternals のTCPViewアプリは、開いている各ポートを所有するプロセスの名前を表示できます。
この情報をプログラムで列挙したい場合は、Windows のポート ルーティング テーブルを手動で列挙し、それらをプロセスにマップする必要があります。AllocateAndGetTcpExTableFromStack()
XP では、とを使用できますAllocateAndGetUdpExTableFromStack()
。GetExtendedTcpTable()
Vista 以降では、代わりにandを使用できますGetExtendedUdpTable()
。どちらの関数セットも、開いている各 IP/ポートのプロセス ID を返すことができます。これを の結果と比較できますGetCurrentProcessId()
。
于 2012-09-19T19:53:54.683 に答える