ICMP Ping Library for Java/Windows

Verax ICMP Ping Library for Java/Windows is a high-performance, asynchronous and 100% JNI (Java Native Interface) implementation of the ICMP (Internet Control Message Protocol) ping for Microsoft Windows, independent of any third party libraries.

The problem

Java 5 introduced the InetAddress class for ICMP ping messages however its behavior is highly platform-dependent. On Windows, the isReachable() method uses connection on TCP port 7 (echo) which gives inaccurate results both in terms of response times and actual availability.
Verax ICMP Library addresses these problems by using a 100% native approach based purely on Winsock raw sockets. It is used for implementing Windows ICMP pings in Verax NMS on Windows platforms.

Asynchronous, lightweight and efficient implementation

Verax ICMP Library for Java/Windows provides both synchronous and asynchronous APIs. The asynchronous APIs allow to issue any number of ping requests and to wait for their completion. This approach allows for the highest levels of performance & scalability, not achievable by synchronous APIs without spawning a large number of threads.

Accurate response time calculation

Verax ICMP Library for Java/Windows uses asynchronous waiting and high-resolution Windows timers in order to provide accurate results, far more precise than the Java's InetAddress class.

No dependencies on third parties

Verax ICMP implementation uses native Microsoft Winsock APIs and does not require any third party libraries and/or software packages such as pcap/Jpcap. It means that it is not necessary to install any additional drivers on the system for applications using the library.

Supported systems

Verax ICMP Library supports Microsoft Windows XP, Vista, 7, Server 2003, Server 2008 and higher. For systems supporting UAC (User Access Control), the library requires administrator-elevated privileges to run (without them, RAW ICMP sockets cannot be created).

License

The software is provided "as is" and without any liability under the GPL v3 license. Please contact us for a commercial license.

Tools required for compilation

Verax ICMP Library requires Oracle JRE 1.6 or higher and Microsoft Visual C++ 2003 or higher for compilation (please refer to the README file in the .zip file for details on how to compile the .jar and corresponding JNI .dll).

Documentation

JavaDoc documentation and examples are provided within the library .zip file available for downloads.

License

The software is provided "as is" with no warranty and no support under the GPL v3 license. For a commercial, non-GPL license and support please contact sales at veraxsystems.com.