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.
Java 5 introduced the InetAddress
class for ICMP ping messages however its behavior is highly platform-dependent.
On Windows, the isReachable()
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.
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).
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).
JavaDoc documentation and examples are provided within the library .zip file available for downloads.