Ping реализован на NodeMCU?

Civil

New member
Может ли NodeMCU пинговать сайты?
Если нет, то какой способ определения доступности используется?
 

Civil

New member
Это можно, но довольно грустный способ как с точки зрения трафика, так и затрат на парсинг ответа.
Я надеялся, что есть что-то попроще.
 

DamirX

New member
Может ли NodeMCU пинговать сайты?
Если нет, то какой способ определения доступности используется?
Ну... пинговать САЙТЫ, это как-бы малость технически неграмотное выражение, потому, как пингуются не САЙТЫ, а IP-адреса (или в частном случае хосты). И доступность хоста, не означает доступность сайта. Доступность сайта это и вправду парсить ответ на запрос GET.
 

Civil

New member
Согласен. Но вообще-то и ответ 200 не даст гарантии, что с сайтом все в порядке.
У меня обратная задача: определяя доступность нескольких сайтов/хостов выяснить, есть ли проблемы со связностью сети. Для этого я предполагал отобрать несколько сайтов типа гугла и яндекса. Но они с кодом 301/302 перебрасывают на версию с https.
Такой вопрос: сайты с большими страницами esp не в силах обработать. Можно ли ограничить прием первыми 100 байтами, а затем разорвать соединение?
 

pvvx

Активный участник сообщества
Согласен. Но вообще-то и ответ 200 не даст гарантии, что с сайтом все в порядке.
У меня обратная задача: определяя доступность нескольких сайтов/хостов выяснить, есть ли проблемы со связностью сети. Для этого я предполагал отобрать несколько сайтов типа гугла и яндекса. Но они с кодом 301/302 перебрасывают на версию с https.
Такой вопрос: сайты с большими страницами esp не в силах обработать. Можно ли ограничить прием первыми 100 байтами, а затем разорвать соединение?
Посмотрите что опрашивает Windows или Андорид, для понятия что инет доступен.
В частности Windows опрашивает это http://www.msftncsi.com/ncsi.txt
и 131.107.255.255.
А Андорид типа http://clients3.google.com/generate_204
Поищите Google
 
Последнее редактирование:

Civil

New member
Да, про Windows именно это и нашел: Для определения, доступна ли сеть Интернет - Windows использует проверку доступа к серверам DNS, запрос HTTP(80) к узлу сети www.msftncsi.com на наличие файла ncsi.txt
Подходит. Спасибо.
Но я предполагал сделать несколько уровней проверки:
- мой роутер
- мой провайдер
- клиент узла обмена трафиком
- зарубежный канал на континент 1
- зарубежный канал на континент 2
Т.е. пока закрываем 1 и последний пункт. Уже хорошо.
 

yokotoka

New member
Это можно, но довольно грустный способ как с точки зрения трафика, так и затрат на парсинг ответа.
Я надеялся, что есть что-то попроще.
Вместо GET-запроса можно использовать HEAD-запрос. С точки зрения трафика не так уж и драматично. А код возврата вообще в первых трёх символах всегда идёт - о каком парсинге речь?
Ещё можете пробовать открывать TCP-сокет до какого-нибудь IP:порт.
 

nikolz

Well-known member
путь будет не близким.
Необходимо:
1) освоить программирование на луа (лучше используя SCITE)
2) изучить API C для LUA
3) написать ping на CИ для винды (проще будет отладить)
4) отладить функцию ping в LUA SCITE
4) переписать функцию ping c СИ для винды на СИ для ESP
5) взять любой драйвер в NODEMCU например ADC и вставить в него вызов функции ping. изменить имя и прописать функцию в таблицу описания функций
 

Kesha

New member
Кстати Ping в нынешних реалиях это плохой способ диагностики, На многих Firewall их просто прибивают. Поэтому нужно проверять именно доступность интересующего вас порта по TCP или UDP
 
Сверху Снизу