Implementación Java de la API check-host.net
Si encuentra algún problema, infórmelo en el rastreador de problemas.
Si solo quieres hablar o necesitas ayuda con CheckHost4J, no dudes en unirte a mi Discord.
Para usar CheckHost4J con Gradle/Maven, puede usar Maven Central, Maven o Jitpack de Lenni0451.
También puede encontrar instrucciones sobre cómo implementarlo en su script de compilación allí.
Si solo desea el archivo jar más reciente, puede descargarlo desde GitHub Actions o usar Release.
Esta biblioteca requiere que tengas Gson en tu ruta de clase
La clase principal de la API es CheckHost4J
, contiene todos los métodos para interactuar con la API.
final CheckHost4J checkHost = CheckHost4J . INSTANCE ;
Puede utilizar CheckHost4J.INSTANCE
o crear una nueva instancia de CheckHost4J
usted mismo; al crear una instancia propia, puede definir el IRequester
usted mismo, que se utiliza para enviar las solicitudes a la API.
final CheckHost4J checkHost = new CheckHost4J (...);
El IRequester
predeterminado es JavaRequester
, al que se puede acceder a través de JavaRequester.INSTANCE
. También puede crear una nueva instancia usando new JavaRequester("<user-agent>")
.
final CheckHost4J checkHost = new CheckHost4J ( new JavaRequester ( "MyUserAgent" ));
Puede utilizar los métodos CheckHost4J#ping
, CheckHost4J#http
, CheckHost4J#tcpPort
, CheckHost4J#udpPort
y CheckHost4J#dns
para obtener un ResultNode<T>
donde T es el tipo de resultado de la solicitud (por ejemplo PingResult
, TCPResult
).
final ResultNode < PingResult > pingResult = checkHost . ping ( "example.com" , 80 /* max nodes */ );
Después de obtener ResultNode<T>
puede usar tickResults()
para actualizar la lista getResults()
.
// This will update the results list by sending the check-result request to the API,
// This might not update all results, because some might not be finished yet
// Which means you have to call this method multiple times to get all results (e.g. with a delay of 5 seconds)
pingResult . tickResults ();
final Map < ServerNode , PingResult > results = pingResult . getResults ();
results . forEach (( serverNode , result ) -> {
if ( result == null ) { // All results which are not finished yet will be null
System . out . println ( serverNode . name + " is still checking..." );
} else if ( result . getErrorMessage () != null ) {
System . out . println ( serverNode . name + " failed: " + result . getErrorMessage ());
} else {
System . out . println ( serverNode . name + " responded: " + result . getSuccessfulPings () + "/" + result . getTotalPings ());
}
});
También puede obtener todos los nodos del servidor que se están verificando utilizando el método getNodes()
.
final List < ServerNode > nodes = pingResult . getNodes ();
El paquete de.florianmichael.checkhost4j.model.result
contiene todas las clases de resultados, que se utilizan para almacenar el resultado de las solicitudes.
Para obtener una lista de todos los tipos de solicitudes, puede utilizar la enumeración ResultType
.