Overview

More Admin Tools

Articles

Downloads

 

TCP port check Windows 11  |  12-May-2024    

Tutorial PortCheck 3.0         

PortCheck is a tiny command line tool for administrators and network admins. It checks if a remote device answers on a certain TCP port.

 

Content

What's new in version 3.0

Syntax

Examples

Individual text / text in other languages

Alarm in case of error

 

What's new in version 3.0 (May 2024)

PortCheck has some new features:

  • IPv6 support: PortCheck now also checks IPv6 destinations. If the destination is available on IPv4 and IPv6, you can select the protocol using the "-4" and "-6" switches.

  • User-defined ports (custom ports): Using the customports.txt file, you can now define your own "important ports" to be checked. The call is then simply PortCheck <host> cp. More about this... 

  • Sound on OK and failure: In addition to the "-bp" option (beep on failure), there is now the "-bp+" option. This generates a low tone on OK and a high tone on failure.

  • Update of the known ports: The known TCP ports have been updated. To test the known ports run PortCheck <host> kp.

  • Bug fixes: Several small bug fixes. Including a problem with spaces in interactive mode (PortCheck -i).

 

What was new in version 2.1 (Nov. 2020)

  • Interactive mode with -i: You can create a shortcut on the desktop that asks for host and port when double-clicked. Very practical for ad hoc checks.

  • Individual text: With the parameters -replaceopentext and -replaceclosedtext the output can be completely customized. An interesting feature. For example, in the event of an error, instead of the "networker language" this text could appear: "No answer from Production-Machine1. Please call 5678". Furthermore, the output can be adapted to any language.

  • Alerting in case of error: PortCheck can now execute batch files in case of closed ports and in the "repaired case". Also only after several failures - completely configurable.

  • Bugfix: PortCheck 2.0 sometimes showed a wrong result when the own Windows firewall prohibited an outgoing port.

 

Syntax

PortCheck 3.0.0.16 by Lugrain Software 05/2024
Checks if a remote TCP port is responding.

Easy syntax:

PortCheck [-t] [-i] <hostname(s)> <port(s)>

Examples:

PortCheck -i               # interactive (ask for input)
PortCheck MyServer 80      # single check
PortCheck -t MyServer 443  # continuous

More complex syntax:

PortCheck [-t] [-i] [-w:<pause in s>] [-st] [-nc] [-oo] [-nl] [-tc] [-bp] [-bp+] [-4] [-6]
          [-rcf:<batch file when closed>] [-rcc:<closed count>] [-rco] [-rch]
          [-rof:<batch file when open>] [-roc:<open count>] [-roo] [-roh]
          [-replaceopentext:<text when open>] [-replaceclosedtext:<text when closed>]
          <hostname(s)> <port(s)> [<timeout in ms>] [<name of logfile>] [<description>]


hostname(s)    One or more hostnames, separated by comma (no blanks)
port(s)        One or more TCP port numbers (separated by comma), a port
range          <startport>-<endport> or all wellknown ports 'knownports' or 'kp'
timeout        Can be 100-1000 (default: 1000ms)
filename       Logs everything to a specified file, including date and time
description    Your own description for the specified port

-t    Check the specified ports continuous
-w    Wait some time between checks (this is not the timeout)
-4    Prefer IPv4 (if both are available)
-6    Prefer IPv6 (if both are available)-st   Show date and time in every line
-nc   No color: use default color instead of green and red
-oo   Only open: show only open ports
-nl   No lines: don't add separators
-tc   Toggle colors: swap green and red (port opened = alarm)
-bp   Beep: send acoustical signal in case of alarm (only with -t)
-bp+  Beep: send acoustical signal in case of OK and timeout (only with -t)

Examples:

PortCheck www.bing.com 80
PortCheck -t www.bing.com 80
PortCheck oracle-server1 1521 500 c:\temp\logfile.txt oracle
PortCheck -t -bp MyFileserver 139
PortCheck -t -w:10 MyFileserver 139,445
PortCheck -t -tc -bp sql-server1,sql-server2 1433 300
PortCheck -oo MyServer 1-1024
PortCheck MyServer knownports
PortCheck -t -rcf:"c:\data\closed.cmd" -rcc:3 -rco Citrix-Server 1494
PortCheck -t -replaceclosedtext:"Machine isn't working properly. Please call 1234!" Citrix-Server 1494

Returns ERRORLEVEL=0 when port is closed, ERRORLEVEL=1 when port is opened.

Examples


Simple check
PortCheck www.bing.com 80
Checks once whether www.bing.de answers on port 80 (HTTP).

Continuous
PortCheck -t www.bing.com 443
Checks continuously (as with the ping command) whether www.bing.com responds on port 443 (HTTPS).

Continuous check, ask for host and port
PortCheck -i
Queries host and port from user. You can create a shortcut on your desktop that calls PortCheck.exe -i. This allows you to run an ad hoc PortCheck at any time.

Show date and time
PortCheck -t -st SQL-Server1 445
Checks continuously if SQL-Server1 responds on port 445 (NetBIOS over TCP/IP). Displays date and time in every line.

Log to file with date and time
PortCheck -t -st Terminal-Server1 445 1000 c:\temp\Port445.txt
Checks continuously if Terminal-Server1 responds on port 445 (NetBIOS over TCP/IP). Displays date and time in every line and writes eyerything to a file.

Multiple hosts, single port
PortCheck -t Fileserver1,Fileserver2 3389
Checks continuously if Fileserver1 and Fileserver2 respond on port 3389 (RDP). Important: No blanks before and behind the comma.

Multiple hosts, multiple ports
PortCheck -t Fileserver1,Fileserver2 139,3389
Checks continuously if Fileserver1 and Fileserver2 respond on port 139 (NetBIOS) and port 3389 (RDP). Important: No blanks before and behind the comma.

Wait between two checks
PortCheck -t -w:10 Exchange-Server1 443
Checks continuously if Exchange-Server1 answers on Port 443. Waits 10 seconds between two checks.

Wait and Timeout
PortCheck -t -w:10 Cisco-Router1 22 600
Checks continuously if Cisco-Router1 answers on Port 22 (SSH). Waits 10 seconds between two checks. Timeout is set to 600ms.

Acoustic signal (Beep)
PortCheck -t -bp Citrix-Server1 1494
Checks continuously if Citrix-Server1 answers on port 1494 (ICA). A beep sounds if the server does not respond.

Acoustic signal (Beep) und reversed colors
PortCheck -t -bp -tc Citrix-Server1 1494
Checks continuously if Citrix-Server1 answers on port 1494 (ICA). A beep sounds if the server responds (answer = error).

Portscan on "Known Ports"
PortCheck Oracle-Server1 kp
Checks whether Oracle-Server1 responds on the "known ports". Checks about. 1100 known ports.

Portscan on port range
PortCheck Oracle-Server1 1-1024

Checks whether Oracle-Server1 answers on port 1-1024.

 

 

Individual text / text in other languages

With the parameters -replaceopentext and -replaceclosedtext the output can be customized. The specified text replaces the complete line which is normally output by PortCheck. So it is also possible to display the text in any language.


Example:

You want to monitor the functionality of a production machine with PortCheck. The machine with the IP address 10.5.1.1 responds on port 27000. The specialists - who do not have any special IT know-how - should be shown an understandable text in case of an error:

PortCheck -t -replaceopentext:"Production machine PM-1 is working properly" -replaceclosedtext:"No answer from Production Machine PM-1. Please restart or call 12345!" 10.5.1.1 27000

The following variables can be used within the text:

%host%      Hostname
%ip%        IP address
%port%      Port
%result%    Time in milliseconds or "timeout"
%datetime%  Date and time

 

 

Alarm in case of error

PortCheck is able to execute a batch file in case of an error. You can then use this batch file to perform further actions, such as sending a mail or SMS or initiating repair actions. Here are the possibilities:

  • Alarm can be triggered at the first error or after several successive errors. This avoids an immediate alarm at the first timeout.

  • One-time alarm possible. In this way, it can be configured so that only a single alarm is triggered in the event of a permanent failure.

  • Alarm in case of "repaired" possible. In this way all parties involved know that the problem has been fixed.

 

Example 1:
You want to use PortCheck to permanently monitor a web server on port 443. If the web server does not respond on this port 10 times in a row, the batch file Webserver-Error.cmd should be executed once. This is how it works:


PortCheck -t -rcf:"c:\data\Webserver-Error.cmd" -rcc:10 -rco WebServer1 443


With the parameter -rco the file is executed only once. It will only be executed again if there is at least one response on port 443. 


Example 2:

You want to use PortCheck to permanently monitor a file server on port 139. If the file server does not respond on this port 8 times in a row, the batch file Fileserver-Error.bat should be executed once. If the file server responds on the port 4 times in a row again, the batch file Fileserver-OK.bat should be executed. The command line is:


PortCheck -t -rcf:"c:\data\Fileserver-Error.bat" -rcc:8 -rco -rof:"c:\data\Fileserver-OK.bat" -roc:4 -roo FileServer1
139


Looks complicated, but it is not :). Everything that starts with "-rc" stands for "run when closed". Everything that starts with "-ro" stands for "run when open". For example, "-roo" stands for "run when open once".

The following parameters are automatically transferred to the batch files and can be used in them:

%1   Hostname
%2   IP address
%3   Port
%4   Time in milliseconds or "timeout"

 


>>> PortCheck Home

-----
Software: PortCheck
Category: TCP port check for Windows / Check TCP ports Windows 10
Type: Command line (cmd) 
Operating Systems: Windows 7 / Windows 8 / Windows 10 / Windows 11 / Windows Server 2008 / Windows Server 2012 / Windows Server 2016 / Windows Server 2019 / Windows Server 2022