2016-10-20 5 views
0

どのようにIPとポートでサーバに接続し、その情報を入手できますか? netcatcurlで処理しようとしましたが、情報が長すぎます。私もtelnetを使ってみましたが、それは私にとっては良い方法ではありません。 私は指定されたポートのいくつかのアドレスに接続するスクリプトを持っています。もし接続されていれば、それについての短い情報を表示したいのですが。 可能ですか?この問題を解決する他の方法はありますか?アドレスとポートを持ち、短い情報を取得する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に似た何かが必​​要です。私はサーバーについて基本的なことが必要です。これは、このように1行または短くなければなりません。たぶん私はカールからこの情報を得ることができますが、短い方法で? – allocer

+0

どのような情報を取得しようとしていますか?ポートをアプリケーションにマップするだけですか?リモートシステムに関するOS情報を取得しようとしますか?アプリケーションのバージョン情報を取得しますか?リモートシステムの稼働時間を見積もりたいですか?あなたが望むかもしれない多くの種類の情報があります、そして、あなたが望むものについてもう少し詳細がなければ手助けするのは難しいでしょう。あなたが望む出力の例を含めるには[編集](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

私はubuntuを実行していて、マニュアルにあります。 端末で 'man nc'を試してください http://manpages.ubuntu.com/manpages/xenial/man1/nc_openbsd.1.html –

+0

私はwin 10とcygwinを使用しています。 – allocer

関連する問題