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 .