LoginSignup
117
131

More than 5 years have passed since last update.

telnetコマンドのないWindowsでのTCPポート確認

Last updated at Posted at 2015-10-19

telnetコマンドが入っていないWindowsサーバでポートが開いてるか確認したいときの確認方法です。
最近のunixならpythonやperlが標準で使えることが多いですが、Windowsの選択肢としてはVBSかPowerShellなのでここではPowerShellでやってみます。
やってる内容はPowerShellでTCPのソケットを生成してその結果を確認しているだけなので、unix上のLLでも同様のやり方で出来るかと思います。

手順

前準備

PowerShell起動

C:\>powershell
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

TCPクライアントオブジェクト生成(socket生成)

PS C:\> $tc = New-Object System.Net.Sockets.tcpClient

ポートが空いているとき

ターゲットへ接続(IP/ホスト、ポート番号)

PS C:\> $tc.connect("192.168.0.1", 80)

状態確認(接続可能ならTrueが返る)

PS C:\> $tc.connected
True

オブジェクトの解放

PS C:\> $tc.close()

ポートが空いてないとき

PS C:\> $tc = New-Object System.Net.Sockets.tcpClient
PS C:\> $tc.connect("192.168.0.1", 81)
"2" 個の引数を指定して "Connect" を呼び出し中に例外が発生しました: "対象のコン
ピューターによって拒否されたため、接続できませんでした。 192.168.0.1:81"
発生場所 行:1 文字:12
+ $tc.connect <<<< ("192.168.0.1", 81)
    + CategoryInfo          : NotSpecified: (:) []、MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

コネクション状態がFalse

PS C:\> $tc.connected
False

要するに

$tc = New-Object System.Net.Sockets.tcpClient
$tc.connect(ターゲット, ポート)
$tc.connected

の3行です。
Trueならポートが開いている、Falseなら開いていないことが確認できます。

顧客サーバなど他のアプリケーションやスクリプトを導入出来ない環境でアドホックに確認するときに使えるかと思います。

117
131
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
117
131