Implementação Java da API check-host.net
Se você encontrar algum problema, relate-o no rastreador de problemas.
Se você quiser apenas conversar ou precisar de ajuda com CheckHost4J, sinta-se à vontade para entrar no meu Discord.
Para usar CheckHost4J com Gradle/Maven você pode usar Maven Central, Lenni0451's Maven ou Jitpack.
Você também pode encontrar instruções sobre como implementá-lo em seu script de construção.
Se você deseja apenas o arquivo jar mais recente, pode baixá-lo em GitHub Actions ou usar o Release.
Esta biblioteca requer que você tenha Gson em seu caminho de classe
A classe principal da API é CheckHost4J
, ela contém todos os métodos para interagir com a API.
final CheckHost4J checkHost = CheckHost4J . INSTANCE ;
Você pode usar CheckHost4J.INSTANCE
ou criar você mesmo uma nova instância de CheckHost4J
, criando uma instância própria você mesmo pode definir o IRequester
, que é usado para enviar as solicitações para a API.
final CheckHost4J checkHost = new CheckHost4J (...);
O IRequester
padrão é JavaRequester
, que pode ser acessado via JavaRequester.INSTANCE
, você também pode criar uma nova instância usando new JavaRequester("<user-agent>")
.
final CheckHost4J checkHost = new CheckHost4J ( new JavaRequester ( "MyUserAgent" ));
Você pode usar os métodos CheckHost4J#ping
, CheckHost4J#http
, CheckHost4J#tcpPort
, CheckHost4J#udpPort
e CheckHost4J#dns
para obter um ResultNode<T>
onde T é o tipo de resultado da solicitação (por exemplo, PingResult
, TCPResult
).
final ResultNode < PingResult > pingResult = checkHost . ping ( "example.com" , 80 /* max nodes */ );
Depois de obter ResultNode<T>
você pode usar tickResults()
para atualizar a 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 ());
}
});
Você também pode obter todos os nós do servidor que estão sendo verificados usando o método getNodes()
.
final List < ServerNode > nodes = pingResult . getNodes ();
O pacote de.florianmichael.checkhost4j.model.result
contém todas as classes de resultados, que são utilizadas para armazenar o resultado das solicitações.
Para obter uma lista de todos os tipos de solicitação, você pode usar o enum ResultType
.