2016-10-20 9 views
0

IP 및 포트별로 서버에 연결할 수있는 방법에 대한 간단한 정보를 얻을 수 있습니까? netcatcurl으로 처리하려고했지만 정보가 너무 깁니다. 나는 또한 텔넷을 사용하려고 시도했지만 좋은 방법은 아니다. 특정 포트의 일부 주소에 연결하는 스크립트가 있는데 연결되어 있다면 그것에 대한 간단한 정보를 표시하려고합니다. 가능합니까? 이 문제를 해결할 다른 방법이 있습니까?주소 및 포트가있는 Bash ping 서버 및 짧은 정보 얻기

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; 

편집 : 나는 좀하고 싶습니다 서버에서 응답의

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

어떤 종류의 정보를 얻으려고합니까? nmap 사용을 고려 했습니까? –

+0

나는 nmap을 사용할 수 없다 (이것은 나의 연구 과제이다). nmap과 비슷한 것이 필요합니다. 나는 서버에 대해서만 기본이 필요하다. 이것을 한 줄 또는 짧게해야합니다. 어쩌면 나는 컬에서이 정보를 얻을 수 있지만 짧은 방법으로? – allocer

+0

어떤 종류의 정보를 얻으려고합니까? 포트를 가능한 응용 프로그램에 매핑하고 싶습니까? 원격 시스템에 대한 OS 정보를 얻으려고합니까? 응용 프로그램 버전 정보를 가져 오시겠습니까? 원격 시스템의 가동 시간을 예측 하시겠습니까? 원하는 유형의 정보가 많으므로 원하는 정보에 대한 세부 정보가 없으면 도움이 될 것입니다. 원하는 결과물을 포함 시키려면 [edit] (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

nc 사양에 -q가 표시되지 않습니다. http://www.tutorialspoint.com/unix_commands/nc.htm – allocer

+0

우분투를 실행 중이며 설명서에 있습니다. 터미널에서'man nc'을 시도하십시오. http://manpages.ubuntu.com/manpages/xenial/man1/nc_openbsd.1.html –

+0

저는 win 10과 cygwin을 사용하고 있습니다. – allocer