2013-09-04 1 views
3

Как это сделать с помощью JAVA? Я могу найти, какой порт используется или не используется итерацией через все порты.найти, какая программа использует порт на удаленном компьютере

tcp = new Socket(remote_address, i); // i [0 - 65535] 
tcp.setReuseAddress(true); 

Но как найти приложение, использующее этот порт?

+0

Я считаю, что для Java есть оболочка nmap. Может быть, вам стоит это сделать. – nullpotent

ответ

2

Его действительно сложно найти, используя java. Для этого вам нужно написать довольно большие коды, проверяющие различные характеристики портов. Если у вас Google об этом, вы можете получить более подробную информацию об этом. Фактически, некоторые запросы должны быть отправлены в порт. Теперь различные приложения, работающие за этим портом, будут отвечать конкретными заголовками/баннерами/форматами, которые вы будете использовать, чтобы проверять различные предустановленные условия. Но это не 100% точный способ.

Smart Net Admins может подделать вас, поставив приманки за порт.

Вместо этого вы можете использовать Nmap для этого. Его инструмент командной строки, используемый в linux/windows/mac, который может помочь вам найти довольно много информации о порту.

+0

Я не хочу использовать библиотеку. Задача состоит в том, чтобы писать самостоятельно. Может быть, я должен использовать другой язык? С ++ и WinAPI? – lapots

+0

@ user1432980 Нет, меняющиеся языки не помогут. Исходная предпосылка проблемы затрудняет ее. – hexafraction

+1

На самом деле, что различные инструменты делают, это то, что он отправляет определенное количество запросов и видит ответ, который он получает. Теперь он проверяет различные предустановленные условия и предсказывает тип приложения, запущенного на этом порту. И его не 100% точные результаты, так как различные приманки могут быть установлены сетевыми админами для подделки сканирования –

2

Вы не можете это определить. Любое приложение может отправлять любой поток данных через TCP, и по соображениям безопасности эта информация не отображается удаленно. Тем не менее, вы можете исследовать порт с различными сообщениями и посмотреть, что произойдет, что позволит вам экспериментально вывести приложение.

Кроме того, некоторые службы/протоколы будут иметь отличительные приветствия, заголовки и сообщения и могут даже выводить отладочную информацию.

+2

OP может видеть это для себя, telnetting порт и посмотреть, как выглядят ответы. – Cruncher

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