Есть ли способ найти серверы, присутствующие в локальной сети, используя Java? - PullRequest
0 голосов
/ 30 октября 2018

Я хочу найти список серверов, присутствующих в локальной сети с использованием Java. Это возможно? Или есть ли способ отличить серверы от хоста при сканировании сети?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Мне не известно о четком разграничении между «обычным хостом» и «сервером». Все системы, которые я использую, работают ОБА как «обычные хосты» И как «серверы» ... в зависимости от вашей перспективы. (И вы, конечно, не можете различить типичные системы на основе ОС, на которой они работают. Мой ноутбук работает, например, под Linux.)

Если (гипотетически) вы можете придумать несколько объективных критериев для различения двух типов систем (основанных на том, как они ведут себя / отвечают на сетевые запросы), то можно было бы отличить их, используя такой инструмент, как nmap. Другой вариант - использовать такой инструмент, как OpenVAS, который может сделать «обоснованное предположение» об ОС системы, основываясь на различных подсказках.

Но на самом деле все сводится к тому, что вы предоставляете объективные / измеримые критерии для решения, является ли система сервером.


Но nmap просто пытается угадать ОС хост-машины и большую часть времени не может угадать.

Ну да. Ожидаете ли вы, что типичная ОС будет передавать такую ​​информацию кому-либо / чему-либо в сети, которая спрашивает?

Теперь, еще в 1980-х ... до того, как Morris Worm был выпущен в дикую природу ... люди были намного более доверчивыми. Но не в 2018 году!

0 голосов
/ 30 октября 2018

Самое простое решение - вызвать nmap из Java. Это позволит сканировать порты и попытаться классифицировать порты, которые прослушивает компьютер. Конечно, вы можете сделать то же самое с Java, но это вряд ли стоит усилий. https://nmap.org/

ПРИМЕЧАНИЕ. Это распространенный инструмент, используемый сетевыми хакерами, поэтому убедитесь, что у вас есть разрешение на запуск этого в вашей сети, прежде чем вы это сделаете.

...