Запрос проверки может быть выполнен с помощью http запроса:
curl -H "Accept: application/json" \
'https://check-host.net/check-<CHECKTYPE>?host=<HOSTNAME>&max_nodes=<MAX_NODES>&node=<NODE>'
<CHECKTYPE> принимает одно из следующих значений: ping, http, tcp, dns, udp
<MAX_NODES> обозначает количество узлов используемых для проверки
<NODE> используется для указания узла(ов) проверки
Пример:
curl -H "Accept: application/json" \
'https://check-host.net/check-tcp?host=smtp://gmail.com&max_nodes=1'
Ответ:
{
"ok": 1,
"request_id": "29",
"permanent_link": "https://check-host.net/check-report/29",
"nodes": {
"us1.node.check-host.net": ["us", "USA", "Los Angeles", "5.253.30.82", "AS18978"],
}
}
request_id - это идентификатор запроса. Используется для получения результатов проверки. permanent_link - это постоянная ссылка на отчет проверки. nodes содержит хэш-таблицу узлов, на которых выполняется проверка. Ключ - это идентификатор узла, а значение описывает расположение узла, IP и ASN.
Результаты проверки могут быть получены с помощью http запроса:
curl -H "Accept: application/json" \
https://check-host.net/check-result/<REQUEST_ID>
Ответ:
{
{"us1.node.check-host.net": [[1, 0.131124019622803, "Moved Permanently", "301"]]}
}
curl -H "Accept: application/json" \
'https://check-host.net/check-ping?host=check-host.net&max_nodes=3'
Ответ:
{
"ok": 1,
"request_id": "806df9",
"permanent_link": "https://check-host.net/check-report/806df9",
"nodes": {
"us1.node.check-host.net": ["us", "USA", "Los Angeles", "5.253.30.82", "AS18978"],
"ch1.node.check-host.net": ["ch", "Switzerland", "Zurich", "179.43.148.195", "AS50837"],
"pt1.node.check-host.net": ["pt", "Portugal", "Viana", "185.83.213.25", "AS44222"]
}
}
Результаты Ping проверки
curl -H "Accept: application/json" \
https://check-host.net/check-result/806df9
Ответ:
{
{"us1.node.check-host.net": [[
["OK", 0.044, "94.242.206.94"],
["TIMEOUT", 3.005],
["MALFORMED", 0.045],
["OK", 0.0433]
]],
"ch1.node.check-host.net": [[null]],
"pt1.node.check-host.net": null,
}
}
Узел us1.node.check-host.net выполнил 4 ping'а к узлу 94.242.206.94. Две удачных и две неуспешных: вторая проверка была прервана по таймауту, а во время третьей был получен искаженный ответ.
Узел ch1.node.check-host.net не смог преобразовать доменное имя.
Узел pt1.node.check-host.net все еще выполняет проверку.
curl -H "Accept: application/json" \
'https://check-host.net/check-http?host=check-host.net&max_nodes=3'
Ответ:
{
"ok": 1,
"request_id": "806dfa",
"permanent_link": "https://check-host.net/check-report/806dfa",
"nodes": {
"us1.node.check-host.net": ["us", "USA", "Los Angeles", "5.253.30.82", "AS18978"],
"ch1.node.check-host.net": ["ch", "Switzerland", "Zurich", "179.43.148.195", "AS50837"],
"pt1.node.check-host.net": ["pt", "Portugal", "Viana", "185.83.213.25", "AS44222"]
}
}
Результаты HTTP проверки
curl -H "Accept: application/json" \
https://check-host.net/check-result/806dfa
Ответ:
{
{"us1.node.check-host.net": [[1, 0.13, "OK", "200", "94.242.206.94"]],
"ch1.node.check-host.net": [[0, 0.17, "Not Found", "404", "94.242.206.94"]],
"pt1.node.check-host.net": [[0, 0.07, "No such device or address", null, null]],
}
}
Узел us1.node.check-host.net успешно загрузил страницу. Загрузка страницы заняла 0.13 секунд. Сервер 94.242.206.94 отправил ответ с кодом статуса 200 и сообщением "OK".
Узел ch1.node.check-host.net не смог загрузить страницу из-за ошибки сервера — сервер 94.242.206.94 отправил ответ с кодом статуса 404 и сообщением "Not found".
Узел pt1.node.check-host.net не смог выполнить запрос из-за сетевой ошибки. Он не смог преобразовать имя хоста.
curl -H "Accept: application/json" \
'https://check-host.net/check-tcp?host=https://check-host.net&max_nodes=3'
Ответ:
{
"ok": 1,
"request_id": "806dfb",
"permanent_link": "https://check-host.net/check-report/806dfb",
"nodes": {
"us1.node.check-host.net": ["us", "USA", "Los Angeles", "5.253.30.82", "AS18978"],
"ch1.node.check-host.net": ["ch", "Switzerland", "Zurich", "179.43.148.195", "AS50837"],
"pt1.node.check-host.net": ["pt", "Portugal", "Viana", "185.83.213.25", "AS44222"]
}
}
Результаты TCP проверки подключения
curl -H "Accept: application/json" \
https://check-host.net/check-result/806dfb
Ответ:
{
"us1.node.check-host.net": [{"time": 0.03, "address": "104.28.31.42"}],
"ch1.node.check-host.net": [{"error": "Connection timed out"}],
"pt1.node.check-host.net": null,
}
}
Узел us1.node.check-host.net успешно подключился к серверу за 0.03 секунды. Узел ch1.node.check-host.net не смог подключиться к серверу. Узел pt1.node.check-host.net все еще выполняет проверку.
curl -H "Accept: application/json" \
'https://check-host.net/check-dns?host=https://check-host.net&max_nodes=3'
Ответ:
{
"ok": 1,
"request_id": "806dfc",
"permanent_link": "https://check-host.net/check-report/806dfc",
"nodes": {
"us1.node.check-host.net": ["us", "USA", "Los Angeles", "5.253.30.82", "AS18978"],
"ch1.node.check-host.net": ["ch", "Switzerland", "Zurich", "179.43.148.195", "AS50837"],
"pt1.node.check-host.net": ["pt", "Portugal", "Viana", "185.83.213.25", "AS44222"]
}
}
Результаты DNS проверки адреса
curl -H "Accept: application/json" \
https://check-host.net/check-result/806dfc
Ответ:
{
"us1.node.check-host.net": [{
"A": ["216.58.209.174"],
"AAAA": ["2a00:1450:400d:806::200e"],
"TTL":299
}],
"ch1.node.check-host.net": [{"A": [], "AAAA": [], "TTL": null}],
"pt1.node.check-host.net": null,
}
}
Узел us1.node.check-host.net нашел два адреса: один IPv4 и один IPv6. Узел ch1.node.check-host.net не смог преобразовать доменное имя. Узел pt1.node.check-host.net все еще выполняет проверку.
curl -H "Accept: application/json"
https://check-host.net/nodes/ips
curl -H "Accept: application/json"
https://check-host.net/nodes/hosts
Ответ:
{
"nodes": {
"ru1.node.check-host.net": {
"asn": "AS14576",
"ip": "185.159.82.88",
"location": [
"ru",
"Russia",
"Moscow"
]
},
"de1.node.check-host.net": {
"asn": "AS24940",
"ip": "46.4.143.48",
"location": [
"de",
"Germany",
"Falkenstein"
]
}
}
}
curl -H "Accept: application/json" \
'https://check-host.net/check-tcp?host=google.com:443&node=us1.node.check-host.net&node=ch1.node.check-host.net'
Ответ:
{
"ok": 1,
"request_id": "807dab",
"permanent_link": "https://check-host.net/check-report/807dab",
"nodes": {
"us1.node.check-host.net": ["us", "USA", "Los Angeles", "5.253.30.82", "AS18978"],
"ch1.node.check-host.net": ["ch", "Switzerland", "Zurich", "179.43.148.195", "AS50837"]
}
}
FlorianMichael/CheckHost4J - Java библиотека для API (сторонняя разработка)
Lifailon/Check-Host - PowerShell модуль для API (сторонняя разработка)