Java-реализация API check-host.net
Если у вас возникнут какие-либо проблемы, сообщите о них в системе отслеживания проблем.
Если вы просто хотите поговорить или вам нужна помощь с CheckHost4J, присоединяйтесь к моему Discord.
Чтобы использовать CheckHost4J с Gradle/Maven, вы можете использовать Maven Central, Maven Lenni0451 или Jitpack.
Там же вы можете найти инструкции по внедрению этого в ваш скрипт сборки.
Если вам просто нужен последний jar-файл, вы можете загрузить его из GitHub Actions или использовать Release.
Эта библиотека требует, чтобы в вашем пути к классам был Gson.
Основной класс API — CheckHost4J , он содержит все методы для взаимодействия с API.
final CheckHost4J checkHost = CheckHost4J . INSTANCE ; Вы можете использовать CheckHost4J.INSTANCE или создать новый экземпляр CheckHost4J самостоятельно. Создав собственный экземпляр, вы можете самостоятельно определить IRequester , который используется для отправки запросов в API.
final CheckHost4J checkHost = new CheckHost4J (...); IRequester по умолчанию — JavaRequester , доступ к которому можно получить через JavaRequester.INSTANCE . Вы также можете создать новый экземпляр, используя new JavaRequester("<user-agent>") .
final CheckHost4J checkHost = new CheckHost4J ( new JavaRequester ( "MyUserAgent" )); Вы можете использовать методы CheckHost4J#ping , CheckHost4J#http , CheckHost4J#tcpPort , CheckHost4J#udpPort и CheckHost4J#dns для получения ResultNode<T> , где T — тип результата запроса (например, PingResult , TCPResult ).
final ResultNode < PingResult > pingResult = checkHost . ping ( "example.com" , 80 /* max nodes */ ); После того, как вы получили ResultNode<T> вы можете использовать tickResults() для обновления списка 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 ());
}
}); Вы также можете получить все проверяемые узлы сервера, используя метод getNodes() .
final List < ServerNode > nodes = pingResult . getNodes (); Пакет de.florianmichael.checkhost4j.model.result содержит все классы результатов, которые используются для хранения результатов запросов.
Чтобы получить список всех типов запросов, вы можете использовать перечисление ResultType .