2012-03-28 3 views
1

Любая идея о том, как получить версию ОС терминала в локальной сети с помощью java. Я слышал, что UPNP может это сделать, но я не знаю, как его использовать, и если в Java есть хорошая реализация.Получение версии ОС сетевого терминала (JAVA)

PS: Я не могу использовать SNMP, потому что я не уверен, что активирован на целевом терминале.

ответ

0

Вы можете использовать nmap с опцией -O, для этого не требуется никакого клиента, работающего на терминале, и точность почти идеальна.

+0

поэтому я должен использовать уродливый способ ** exec() **. который нуждается в nmap, установленном в моем терминале, и его небезопасно использовать, когда у него есть проблема с антивирусом и его нелогичным. –

+0

На самом деле нет ничего незаконного с Nmap, если вы используете его в своей собственной сети. В любом случае вам нужно будет установить Nmap только на машине, на которой выполняется ваш скрипт. Возможно, вы можете найти Java API, который позволяет избежать использования exec. – raz3r

+0

OK Я буду искать API, если он существует. –

1

http://nmap4j.sourceforge.net - это Java API, который обертывает Nmap.

+0

Не совсем, но спасибо за ответ. Я ищу повторное создание обнаружения OSD отпечатков пальцев NMap как чистую Java или любое другое решение, которое заставляет меня иметь приблизительное определение версии ОС. –

+0

Добро пожаловать. Я думаю, что будет сложно найти чистую реализацию Java для отпечатков OS. Насколько я понимаю, для этого вам нужно отправить определенные типы сырых пакетов. Для этого вам нужны специфичные для ОС API и корневой доступ к машине. Поддержка Nmap при отпечатках OS довольно хороша и имеет много сторонников. Плюс Nmap поддерживается очень хорошо, они выпускают несколько выпусков каждый год и делают много исправлений ошибок. Я всегда находил сообщество пользователей и разработчиков очень полезным. – Jon

Смежные вопросы