2016-10-20 5 views
0

Как я могу подключиться к разъему через ip и порт и получить краткую информацию об этом? Я попытался сделать это с netcat и curl, но информация слишком длинная. Я также пытался использовать telnet, но это не очень хороший способ для меня. У меня есть сценарий, который подключается к некоторым адресам на определенных портах, а я, если он подключен, хочу показать короткую информацию об этом. Возможно ли это? Есть ли другой метод решения этой проблемы?Bash сервер ping с addres и портом и получить краткую информацию

IP-адреса разные. Они могут быть HTTP, MySQL, SSL и т.д.

прилагаю код с функцией установления соединения по:

if nc -w 10 -z $1 $i; then 
     printf "\n$1:$i - Port is open\n\nSERVER INFO:\n"; 
     printf "\n$(curl -IL $1)\n";   
    else 
     printf "\n$1:$i - Port is closed\n" 
fi; 

EDIT: Пример ответа от сервера я хотел бы получить

{IP number}: ssh - OpenSSH 6.0pl1, http - apache 1.3.67, https - httpd 2.0.57 
+0

Какую информацию вы пытаетесь найти? Считаете ли вы использование 'nmap'? –

+0

Я не могу использовать nmap (это задача для моих исследований). Мне нужно что-то похожее на nmap. Мне нужен только базовый сервер. Это должно быть только в одной строке или короткой, как это. Может быть, я могу получить эту информацию от завитки, но короче? – allocer

+0

Какую информацию вы пытаетесь получить? Вы хотите просто сопоставить порт с вероятным приложением? Вы хотите попытаться получить информацию о ОС удаленной системы? Вы хотите получить информацию о версии приложения? Вы хотите оценить время работы удаленной системы? Существует много типов информации, которую вы можете захотеть, и вам будет сложно помочь без дополнительной информации о том, чего вы хотите. Не могли бы вы [изменить] (http://stackoverflow.com/posts/40160191/edit) включить пример нужного вам результата. –

ответ

0

Вы были довольно близки. Вы можете включить хост так же, как в своем скрипте.

for port in $(seq 21 23); do 
    out=$(nc -w 1 -q 1 localhost $port) 
    echo port ${port}: $out 
done 

#port 21: 
#port 22: SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7 
#port 23: 
+0

Я не вижу -q в спецификации nc http://www.tutorialspoint.com/unix_commands/nc.htm – allocer

+0

Я запускаю ubuntu, и он находится в руководстве. Попробуйте 'man nc' на вашем терминале http://manpages.ubuntu.com/manpages/xenial/man1/nc_openbsd.1.html –

+0

Я использую win 10 и cygwin. – allocer