Если у вас нет брандмауэров и маршрутизаторов на пути, т. Е. Если вы находитесь в том же сегменте, что и хост, который вы пытаетесь проверить, - большинство решений, приведенных выше, немного исчерпывающие.
Неважно, к какому порту вы подключаетесь, и на самом деле, если вы подключаетесь к порту, на котором вряд ли будет запущена служба, вы можете выполнить работу без обнаружения.
Как?
Вы можете использовать любой инструмент, который вам нравится, но мы можем просто использовать telnet ...
% telnet <host> 313373
Trying 10.211.55.3...
telnet: connect to address 10.211.55.3: Connection refused
telnet: Unable to connect to remote host
%
Это должно произойти немедленно, если только хост не отбрасывает пакеты. На самом деле происходит то, что стек TCP / IP на хосте отправляет вам обратно сегмент TCP с установленным битом RST, то есть завершает ваш пакет SYN.
Тот факт, что вы получили пакет RST, означает, что на другом конце действительно есть хост, и в качестве бонуса вы сделали это незамеченным (у TCP / IP не было приложения верхнего уровня, с которым можно было бы поговорить об этом соединении) ,
Однако вместо telnet я бы, вероятно, использовал что-то вроде scapy, напишу что-нибудь, что ищет флаг RST, и дам вам знать.
Просто для завершения этого, если на IP-адресе, который вы пробуете, нет хоста - он будет зависать некоторое время, и время ожидания - то же самое, что произошло бы , если бы принимающий хост имел брандмауэр с фильтром сбрасывания.
Если брандмауэры задействованы, то, как другие предложили, использовать такие инструменты, как nmap
и все остальное.