Ping any URL with http-ping
Free!

Ping any URL or web site with our free command-line utility, http-ping

Easily find out if your web site is responding and how it is performing

http-ping is a small, free, easy-to-use Windows command line utility that probes a given URL and displays relevant statistics. It is similar to the popular ping utility, but works over HTTP/S instead of ICMP, and with a URL instead of a computer name/IP address. http-ping supports IPv6 addresses.

(http-ping at work - click to enlarge)

For each request, http-ping displays:

  • The HTTP return code (and its brief textual description)
  • The number of bytes returned by the server (excluding headers)
  • The time taken to complete the request (i.e. round-trip time)
A summary of all the requests is presented upon completion.


Command-Line Options

http-ping offers a rich set of command line options which can be seen by running "http-ping.exe /?" from a DOS prompt:

http-ping [-t] [-n count] [-i interval] [-f file-name] [-s] [-v]
          [-q] [-c] [-r] [-w timeout] [-d] [-o data | -of file-name]
          [-ua user-agent] [-h header-line] [-p [proxy-url]]
          [-e | -et | -eb] [-ipv4 | -ipv6] URL

Where:
    URL            The URL you wish to check. For example, http://www.kiva.org,
                   http://209.191.122.70, or http://www.yourhost:8080.
                   Be sure to surround an IPv6 address with square brackets. For
                   example, http://[2a00:1450:4007:800::1014].

Options:
    -t             Ping the specified URL until stopped.
                   To see statistics and continue - type Control-Break;
                   To stop - type Control-C.
    -n count       Send 'count' requests. Supercedes -t.
    -i interval    Wait 'interval' seconds between each request. There is a
                   1-second wait if this option is not specified.
    -f file-name   Save responses to file 'file-name'. Please specify the full
                   path, and use quotes around file names with spaces.
    -s             Silent. Print no output.
    -v             Verbose. Print detailed output. Supercedes -s.
    -q             Quick. Perform HTTP HEAD requests instead of GETs. This will
                   retrieve headers only, and bytes reported will be 0.
    -c             Perform a full connection on each request; ignore keep-alive.
    -r             Follow HTTP redirects.
    -w timeout     Wait 'timeout' seconds for a response before timing out.
                   Specify 0 to avoid timing out.
                   If not specified, the default timeout is 30 seconds.
    -d             Print the date and time of each ping attempt.
    -o data        Perform HTTP POSTs sending the given data. Please enclose
                   the data in quotes if it contains spaces.
    -of file-name  Perform HTTP POSTs sending the contents of file 'file-name'.
                   Please specify the full path, and use quotes if the file name
                   contains spaces.
    -ua user-agent Set the User-Agent value to 'user-agent'. Please use quotes
                   if the value contains spaces.
    -h header-line Pass the given header line as-is in each ping request. For
                   example, add a host header like this:
                   -h \"Host: www.site1.com\"
                   Be sure to surround the header-line with quotes. You can
                   specify multiple instances of this option.
    -p [proxy-url] Use the proxy URL specified. If no proxy URL is specifed,
                   use the value in the Windows Internet settings.\n"
    -e             Instead of returning the percentage of requests that
                   succeeded, return the HTTP status code of the last request,
                   or 0 if the last request failed.
    -et            Instead of returning the percentage of requests that
                   succeeded, return the time taken (in milliseconds) by the
                   last request, or 0 if the last request failed.
    -eb            Instead of returning the percentage of requests that
                   succeeded, return the number of bytes transferred by the
                   last request, or 0 if the last request failed.
    -ipv4          Force IPv4 resolution for dual-stacked sites.
    -ipv6          Force IPv6 resolution for dual-stacked sites.

Upon completion, the exit code is the percentage of requests that succeeded, or either the HTTP status code, time taken, or the number of bytes transferred of the last request (or 0 if the last request failed).

In a DOS batch file, you can access that exit code via the ERRORLEVEL variable (as seen here in this sample batch file used with our run as a Windows Service product, AlwaysUp).



Examples

Example #1: Your basic ping

This simple command shows how our web site is performing:


  http-ping https://www.coretechnologies.com

Example #2: Ping with HEAD instead of GET (to avoid downloading the content)

Use the -q flag to instruct the server not to return the message-body/content on each ping. This option lessens the impact on the server and is appropriate for checking that a URL is being served.

For example, this command checks that the AlwaysUp user manual PDF file is available. The -q option avoids a 1.5 MB transfer on each ping!


  http-ping -q https://www.coretechnologies.com/products/AlwaysUp/AlwaysUpUserManual.pdf

Example #3: Follow redirects

If the URL you are pinging has been moved, the result might be 301/Redirected. This is what happens if we try to access the Yahoo! website over HTTP:

To follow the redirect and make a subsequent request to the new location, we specify the -r flag:


  http-ping -r http://www.yahoo.com

(Of course, another option is to update the URL being interrogated and avoid the redirect hop, but that depends on the specific situation.)

Example #4: Going through a proxy server

If your connection to the Internet is through a proxy, you can specify the server on the command line.

Here is the command line for pinging our web site through one of the proxy servers mentioned in the Free Proxy List:


  http-ping -p http://142.4.15.25:3128 https://www.coretechnologies.com

Example #5: Probing a server from a batch file

You can use http-ping as part of a batch file to monitor a web server. The standard ERRORLEVEL variable will capture http-ping's exit code, which you can use to direct your script.

Here is a simple example, to give you the general idea:


  REM Ping the web server
  http-ping.exe -q https://www.coretechnologies.com

  REM http-ping returns the percentage of pings that succeed.
  REM With 4 attempts, this can be 0, 25, 50, 75, or 100.
  IF ERRORLEVEL 0 GOTO failure
  IF ERRORLEVEL 25 GOTO partialsuccess
  IF ERRORLEVEL 50 GOTO partialsuccess
  IF ERRORLEVEL 75 GOTO partialsuccess
  IF ERRORLEVEL 100 GOTO success
  
  :partialsuccess
  echo Partial success!
  exit 0

  :failure
  echo Failed!
  exit 1
  
  :success
  echo Succeeded!
  exit 0
  

Enjoy!


Download

Download http-ping Version 10.0

682 KB EXE
  • Ready-to-run - no installation
  • For Windows 10/8.1/8/7 and Windows Server 2019/2016/2012 R2/2008

Our customers include...