- ベストアンサー
netstatで接続中のクライアントの台数カウント
TCPポート7000番で待ち受けているサーバで、この7000番に対して現在接続中のクライアントが何台あるのかをnetstatコマンドで表示するにはどのようにオプションなどを入れればよいかご教示頂きますよう、よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
netstat -n を実行して、Local Addressのポートが7000の行のForeign Addressのアドレス部分のユニークな個数を数えればいいです。
その他の回答 (1)
- superside0
- ベストアンサー率64% (461/711)
netstat単独では無理だと思いますが、 netstatの結果を パイプでつなげて 該当行だけを取り出して、その行数をカウントすればいいんじゃないかな。 例えば Linuxなら netstat -an | gawk '{ if ( $4 ~ /:7000/ && $6 != "LISTEN" ) {print $5}}' | wc -l みたいな感じ。 ただ、これだと1台から、いくつも接続していると そのぶんだけカウントしますが もし1台で1カウントとしたいなら 、sedでsrc側のポート番号をカットしてから uniqで重複を消して、 それを wc -lで行数を数えることになります。。 netstat -an | gawk '{ if ( $4 ~ /:7000/ && $6 != "LISTEN" ) {print $5}}'| sed 's/:.*//'| uniq | wc -l (実際には1行) なお、netstatの出力結果が 4つ目が、Local Address 5つ目が、Foreign Address 6つ目が、State の場合の話なんで、 もしかしてOSによっては フォーマット違うかもしれなけど そんときは、それに合わせればよいかと。
お礼
回答頂きありがとうございます。 netstatでパイプが使えると便利そうですね。 一応、netstat -nao | fine ":12000" というので、サーバポートの12000に現在接続中の端末を抜き取って表示するというのを見つけました。 助かります。
お礼
回答頂きありがとうございます。助かります。