Отображение процесса в порт с помощью SNMP и / или wmi / wmic в Java - PullRequest
3 голосов
/ 02 мая 2010

Я пытаюсь использовать SNMP для сопоставления исходящих портов на моем хост-компьютере с приложением, запущенным на компьютере, который отвечает за эту связь.

При запуске "netstat -ano" я получаю доступ к протоколу, локальному адресу (с портом), внешнему адресу (с портом), состоянию и PID. Но я хочу сделать это полностью без необходимости выполнять «cmd» из Java.

При использовании OID SNMP: .1.3.6.1.2.1.25.4 (.iso.org.dod.internet.mgmt.mib-2.host.hrSWRun) Я получаю доступ к PID (например, 1704), имени (например, cmd.exe), пути (например, C: \ Windows \ system32) среди других. Существует OID SNMP: .1.3.6.1.2.1.6.13 (.iso.org.dod.internet.mgmt.mib-2.tcp.tcpConnTable) которые дают вам доступ к состоянию соединения TCP, локальному адресу, локальному порту, удаленному адресу, удаленному порту. Но НЕТ ПИД.

Итак, подведем итоги. Мой вопрос еще раз: есть ли способ «сопоставить» эти таблицы вместе? Или непосредственно в SNMP с другими OID или в сочетании с WMI / WMIC?

ОБНОВЛЕНИЕ: я хочу получить доступ к tcpConnectionProcess в TcpConnectionEntry (tcpConnectionTable). Это из 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, но любая помощь будет отличной помощью.

1 Ответ

0 голосов
/ 21 июня 2013

Это все еще верно 3 года спустя: MS не поддерживает tcpListenerTable или tcpConnectionTable,, несмотря на то, что RFC4022 относится к 2005 году. Он возвращает tcpConnTable для обоих этих запросов, и вам нужно настроить его для обработки, поскольку это OID, отличный от того, который вы запрашивали.

И возвращенные данные не на 100% надежны. Я использовал этот запрос, чтобы выяснить, когда приложение начало прослушивать сокет, и оно не сообщало мне точно в течение нескольких минут.

...