SNMP を使用して、ホスト コンピューターの発信ポートを、その通信を担当するコンピューターで実行されているアプリケーションにマップしようとしています。
「netstat -ano」を実行すると、プロトコル、ローカル アドレス (ポート付き)、外部アドレス (ポート付き)、状態、および PID にアクセスできます。しかし、Java から「cmd」を実行することなく、これを完全に実行したいと考えています。
SNMP OID を使用して: .1.3.6.1.2.1.25.4 (.iso.org.dod.internet.mgmt.mib-2.host.hrSWRun) PID (例: 1704)、名前 (例: cmd. exe)、パス (例: C:\Windows\system32) など。TCP 接続状態、ローカル アドレス、ローカル ポート、リモートへのアクセスを提供する SNMP OID: .1.3.6.1.2.1.6.13 (.iso.org.dod.internet.mgmt.mib-2.tcp.tcpConnTable) があります。アドレス、リモート ポート。しかし、PID はありません。
要約すると。もう一度質問します。これらのテーブルを一緒に「マップ」する方法はありますか? 他の OID を使用して SNMP で直接、または WMI / WMIC と組み合わせて使用しますか?
更新: 私が欲しいのは、TcpConnectionEntry (tcpConnectionTable) の tcpConnectionProcess へのアクセスです。これは RFC 4022 によるものです。tcpConnectionProcess の OID は .1.3.6.1.2.1.6.19.1.8 (.iso.org.dod.internet.mgmt.mib-2.tcp.tcpConnectionTable.tcpConnectionEntry.tcpConnectionProcess) です。
奇妙なことは、OID から値を取得することです: .1.3.6.1.2.1.6.19.1.7 (.iso.org.dod.internet.mgmt.mib-2.tcp.tcpConnectionTable.tcpConnectionEntry.tcpConnectionState)
ここでの主な問題は、Windows ではこのテーブルが空であることです。おそらく、Windows へのインストールに関する私の知識不足ですが、どんな助けも大きな助けになるでしょう。