意外と使えるnetstatコマンド

netstatコマンドでは、通信先のIPアドレス、ポート番号、通信状態の 確認ができる。

C:>netstat /?
プロトコルの統計と現在の TCP/IP ネットワーク接続を表示します。NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval] 

  -a            すべての接続とリッスン ポートを表示します。

  -b            それぞれの接続またはリッスン ポートの作成に使われた実行可能

                ファイルを表示します。場合により、よく知られた実行可能ファイル

                が複数の独立したコンポーネントをホストすることもあり、この

                場合、接続またはリッスン ポートの作成に使われたコンポーネント

                群が表示されます。 この場合、実行可能ファイル名は下に [] で表示

                され、上には TCP/IP に到達するまで順に呼び出したコンポーネント

                が表示されます。 このオプションには時間がかかり、十分なアクセス

                許可がないとエラーが発生することに注意してください。

  -e            イーサネットの統計を表示します。 これは、-s オプションと併用で

                きます。

  -f            外部アドレスの完全修飾ドメイン名 (FQDN) を表示します。

  -n            アドレスとポート番号を数値形式で表示します。

  -o            各接続に関連付けられたそれらを所有するプロセス ID を表示しま

                す。

  -p proto      proto で指定されたプロトコルの接続を表示します。

                proto は次のいずれかです:

                TCP、 UDP、TCPv6、または UDPv6。

                プロトコルごとの統計を表示するため、-s オプションと併用する場

                合、proto は次のいずれかです:

                IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP またはUDPv6。

  -r            ルーティング テーブルを表示します。

  -s            プロトコルごとの統計を表示します。既定では、IP、IPv6、ICMP、

                ICMPv6、TCP、TCPv6、UDP および UDPv6 の統計が表示されます。

                -p オプションを使って、既定のプロトコルのサブセットを指定する

                こともできます。

  -t            現在の接続のオフロードの状態を表示します。

  interval      各表示で interval 秒間一時停止しながら、選択した統計を再表示

                します。統計の再表示を停止するには、CTRL+Cを押してください。

                interval が省略された場合、現在の構成情報を一度だけ表示します。

例えば、リモートデスクトップ接続している場合の情報を知ることができる。
リモートデスクトップ接続で利用するポート番号は、TCPの3389ポートを利用する。文字列を検索するにはfindstrを使うと便利だ。

c:>findstr /?

ファイルから文字列を検索します。

 

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]

        [/F:ファイル] [/C:文字列] [/G:ファイル] [/D:ディレクトリ一覧]

        [/A:色属性] [/OFF[LINE]] 文字列 [[ドライブ:][パス]ファイル名[ …]]

 

  /B           行の先頭にあるパターンを検索します。

  /E           行の末尾にあるパターンを検索します。

  /L           検索文字列をリテラルとして使用します。

  /R           検索文字列を正規表現として使用します。

  /S           現在のディレクトリとすべてのサブディレクトリから一致する

               ファイルを検索します。

  /I           検索するときに大文字と小文字を区別しません。

  /X           完全に一致する行を出力します。

  /V           一致しない行のみを出力します。

  /N           一致する各行の前に行番号を出力します。

  /M           ファイルに一致する行があるときに、ファイル名のみを出力します。

  /O           一致する各行の前に文字オフセットを出力します。

  /P           印刷不可能な文字を含むファイルをスキップします。

  /OFF[LINE]   オフライン属性が設定されたファイルをスキップしません。

  /A:属性      2 桁の 16 進数で色属性を指定します。”color /?” を参照してくだ

               さい。

  /F:ファイル  指定したファイルからファイル一覧を読み取ります (/ を指定する

               とコンソール)。

  /C:文字列    指定された文字列をリテラル検索文字列として使用します。

  /G:ファイル  指定されたファイルから検索文字列を取得します (/ を指定する

               とコンソール)。

  /D:ディレクトリ

               セミコロンで区切られた検索されるディレクトリ文字列テキストの

               一覧を検索します。

  [ドライブ:][パス]ファイル名

               検索するファイルを指定します。

 

複数の文字列を検索する場合には、引数 /C を使わず、各文字列をスペースで区切り

ます。

たとえば、FINDSTR “hello there” x.y と指定した場合は、ファイル x.y で “hello”

または “there” が検索されます。

これに対して、FINDSTR /C:”hello there” x.y と指定した場合はファイル x.y で

“hello there” が検索されます。

 

正規表現クイック リファレンス:

  .            ワイルドカード: 任意の文字

  *            繰り返し: ゼロ個以上の直前の文字またはクラス

  ^            行位置: 行頭

  $            行位置: 行末

  [class]      文字クラス: セットの任意の 1 文字

  [^class]     逆クラス: セット以外の任意の 1 文字

  [x-y]        範囲: 指定した範囲の任意の文字

  x           エスケープ: メタ文字 x のリテラル使用

  <xyz        単語位置: 単語の先頭

  xyz>        単語位置: 単語の終わり

 

FINDSTR の詳細な正規表現に関しては、オンライン ヘルプのコマンド リファレンスを

参照してください。

これらを応用することで、

netstat -f | findstr :3389

とすれば、リモートデスクトップ接続している情報を取得できるわけだ。
と、あるSEから習ったばっかり、とも言う。