понедельник, 6 декабря 2010 г.

Проверка состояния tcp порта

Стандартный способ проверки состояния порта - с помощью команды telnet. Общий вид вызова команды:
telnet [имя хоста] [имя порта]

В случае, если клиент телнета не установлен, то можно проверить состояние порта следующим скриптом на powershell:
param ($ComputerName,$Port)
$sock = new-object System.Net.Sockets.Socket -ArgumentList $([System.Net.Sockets.AddressFamily]::InterNetwork),$([System.Net.Sockets.SocketType]::Stream),$([System.Net.Sockets.ProtocolType]::Tcp)
try {
$sock.Connect($ComputerName,$Port)
$sock.Connected
$sock.Close()
}
catch {
$false
}

Сохраним скрипт как test-tcp.ps1 и запустим его командой .\test-tcp.ps1 [имя хоста] [имя порта]. В случае открытого порта получим ответ True, в обратном случае False.