65.9K
CodeProject is changing. Read more.
Home

How to test the reachability of a VPN-Connection?

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.30/5 (8 votes)

May 16, 2004

2 min read

viewsIcon

113581

downloadIcon

2382

Program to test the availability of hosts in a network on the basis of ICMP-Pings.

SimpleLineTester

What is this?

SimpleLineTester is a very easy to use command-line program (written in VB.NET) to test the availability of hosts in a network on the basis of ICMP-Pings. You can use it, if you want to check, when your provider is disconnecting you, and when your firewall / Router is connecting you up to the Internet again. It is also very helpful to test the availability of a VPN-Connection over more then 24 hours (especially in conjunction with a DynDNS-service). I personally needed this program to test a VPN-Online-Connection, so I thought, maybe anyone needs such a tool too?! Here it is!

This program is OPEN-SOURCE. See here for the open-source package.

Features:

  • Ping as many hostnames and IP-addresses as you want, only limitation is your computer-hardware! (threading)
  • High-resolution pings with 3 positions after decimal point (in the source, it is measured with the precision of 100ns).
  • 5-Mode System to ensure that a host is really gone down.

How does it function?

The program starts a new sub-thread for every host. The default-settings are as follows:

It pings the host every 1500 ms, and waits for a ping in normal mode 1200 ms. When a ping is not received, the mode is changed (Timeout is the time, the programs waits for a ping in ms, and Sleeptime is the time the program waits before sending a new ICMP-ping-packet:

Mode Timeout Sleeptime
NormalChecking 1200 1500
RetryTest1 2000 3000
RetryTest2 5000 6000
RetryTest3 10000 11000
DownTest 5000 6000

So, when a ping-packet is not received in time, the mode goes one level down. This function ensures compatibility with hosts that are becoming really slow. When a ping is received again, the mode is set to NormalChecking. The program resolves the given hostnames every 30 seconds (for use with DynDNS). This would be a sample-log-entry:

15.04.2004 20:50:58 | Thread started, testing 192.168.0.254 every 1500 ms
15.04.2004 20:50:59 | Resolved IP has changed from 127.0.0.1 to 192.168.0.50
15.04.2004 20:51:00 | Up | Delay: 90,125 ms
16.04.2004 09:00:23 | Down
16.04.2004 09:00:35 | Up | Delay: 981,402 ms

What are the Requirements to run the Program?

  • Windows 98/2K/Me/XP/2K3 (only tested under 2K, XP)
  • Microsoft .NET Framework Version 1.1 Redistributable Package
  • 21 KB of free disc-drive =)

How to use it?

  1. First, you need to install Microsoft .NET Framework Version 1.1 Redistributable Package (you can go to step 2 if you're sure that this is installed on your PC: download here).
  2. You need to download the SimpleLineTester, if you haven't done that already (here).
  3. Unpack SimpleLineTester (packed with WinRar).

    The archive contains 4 files:

    • SimpleLineTester.exe, the main program
    • SimpleLineTesterLib.dll, the libs for the program
    • config.txt, the config-file
    • readme.txt, this file
  4. Configure the program for your needs. The format in config.txt is:
    host.com 192.168.1.1 anotherhost.com

    This means write down the hostnames in the first line, separated with one space, there shouldn't be a space behind the last host ! :-/

  5. Finished!

Start SimpleLineTester.exe without parameters (that are none) and enjoy. Thank you for using!