我試圖使用SNMP來映射我的主機上的傳出端口,並在負責該通信的計算機上運行應用程序。在java中使用SNMP和/或wmi/wmic進行端口映射
運行「netstat -ano」時,我可以訪問Protocol,Local Address(帶端口),Foreign Address(帶端口),State和PID。但我想完全做到這一點,而不必從Java執行「cmd」。
通過使用SNMP OID:.1.3.6.1.2.1.25.4(.iso.org.dod.internet.mgmt.mib-2.host.hrSWRun) 我可以訪問PID(例如1704),Name (例如cmd.exe),路徑(例如C:\ Windows \ system32)等等。 有一個SNMP OID:.1.3.6.1.2.1.6.13(.iso.org.dod.internet.mgmt.mib-2.tcp.tcpConnTable) ,它使您可以訪問TCP連接狀態,本地地址,本地端口,遠程地址,遠程端口。但沒有PID。
所以總結一下。我的問題再次提出:有沒有辦法將這些表「映射」在一起?直接在SNMP中與其他OID或與WMI/WMIC結合使用?
更新:我想要的是在TcpConnectionEntry(tcpConnectionTable)中訪問tcpConnectionProcess。這是從4022 RFC 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上安裝方面缺乏知識,但是任何幫助都是非常有幫助的。