Проверьте, произошел ли удаленный хост в Python

Как я проверил бы, произошел ли удаленный хост, не имея номера порта? Есть ли любой другой способ, которым я мог проверить другой затем использующий регулярный ping.

Существует возможность, что удаленный хост мог бы отбросить пакеты ping

6
задан T Zengerink 31 January 2012 в 16:58
поделиться

3 ответа

Лучше всего использовать PING на уровне протокола, т. Е. Подключение к серверу и взаимодействие с ним таким способом, который не дает реальной работы. Это потому, что это единственный реальный способ убедиться, что служба работает. ICMP ECHO (также известный как ping) сообщит вам только о том, что сетевой интерфейс на другом конце работает, и даже в этом случае может быть заблокирован; FWIW, я видел машины, на которых все пользовательские процессы были заблокированы, но которые все еще можно было проверить. В наши дни серверов приложений даже подключения к сети может быть недостаточно; что, если размещенное приложение не работает или не работает? Как я уже сказал, наилучший и самый надежный подход - говорить пустяки о реальных услугах, которые вас интересуют.

1
ответ дан 8 December 2019 в 18:34
поделиться

Лучшее, что вы можете сделать, это:

Многие сайты блокируют ICMP (протокол, используемый для проверки связи с сайтами), поэтому вы должны заранее знать, включен ли этот узел на рассматриваемом узле.

Подключение к порту дает смешанную информацию. Это действительно зависит от того, что вы хотите знать.Порт может быть открыт, но сайт фактически завис, поэтому вы можете получить ложное срабатывание. Более строгий подход может включать использование библиотеки HTTP для выполнения веб-запроса к сайту и проверки получения ответа.

На самом деле все зависит от того, что вам нужно знать.

0
ответ дан 8 December 2019 в 18:34
поделиться

Многие межсетевые экраны настроены на отбрасывание пакетов ping без ответа. Кроме того, некоторые сетевые адаптеры будут отвечать на запросы проверки связи ICMP без ввода из сетевого стека операционной системы, что означает, что операционная система может быть отключена, но хост по-прежнему отвечает на запросы проверки связи (обычно вы заметите, если перезагрузите сервер, скажем, , он начнет отвечать на эхо-запросы за некоторое время до того, как ОС и другие службы запустятся).

Единственный способ убедиться, что хост работает, - это попытаться подключиться к нему через какой-нибудь известный порт (например, порт 80 веб-сервера).

Зачем вам знать, что хост "включен", может быть, есть способ сделать это лучше.

0
ответ дан 8 December 2019 в 18:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: