Ping だと遮断されていたり、遮断されていなくても当該ポートへ到達できるかどうかというのはわからなかったりします。
そういうとき、TCPing というツールがあるようで、これを使うとTCPのポートが開いているかどうかを確認できます。
http://www.elifulkerson.com/projects/tcping.php
Microsoft 純正だと、PortQry というツールがあるらしいです。
http://support.microsoft.com/kb/310099/ja
ただ、外部ツールのインストールは難しい… という場合が多々あります。その場合には、Powershell を使うと似たようなことができます。たとえば以下のような感じ。
# ipv4,ipv6 共通処理 Function executeTCPing($tcp) { $sw = New-Object System.Diagnostics.Stopwatch $sw.Start() try { $tcp.Connect($target, $port) $sw.Stop() Write-Output ("{0} port={1} ({2}) への接続: 時間 ={3:0.00}ms" -f $target, $port, $tcp.Client.RemoteEndPoint, ($sw.Elapsed).TotalMilliseconds) } catch { $sw.Stop() Write-Output ("{0} port={1} への接続: 応答が確認できません" -f $target, $port, ($sw.Elapsed).TotalMilliseconds) } finally { $tcp.Close() $tcp.Dispose() # エラーが出る場合は無くても良い } } # ipv4 用 Function TCPing($target, $port) { $tcp = New-Object System.Net.Sockets.TcpClient executeTCPing $tcp } # ipv6 用 Function TCPing6($target, $port) { $ipv6 = [System.Net.Sockets.AddressFamily]::InterNetworkV6 $tcp = New-Object System.Net.Sockets.TcpClient $ipv6 executeTCPing $tcp }
使い方はこんな感じ
PS > TCPing localhost 445 localhost port=445 (127.0.0.1:445) への接続: 時間 =0.81ms PS > TCPing localhost 80 localhost port=80 への接続: 応答が確認できません PS > TCPing6 localhost 445 localhost port=445 ([::1]:445) への接続: 時間 =0.91ms