Как проверить статус удалённой машины (online/offline) с помощью python?
Нашел такое решение requests:
def status():
try:
response = requests.get("http://myadress.com")
response.raise_for_status()
except HTTPError as http_err:
return 1
except Exception as err:
return 1
else:
return 0
Прекрасно работает, но только с URL. А вот так уже не работает, ничего не возвращает, скрипт просто висит:
def status():
try:
response = requests.get("http://84.120.120.101:8181")
response.raise_for_status()
except HTTPError as http_err:
return 1
except Exception as err:
return 1
else:
return 0
Мне не принципиально использовать этот код, просто нужно проверить статус удаленной машины.
P.S. Вся проблема в пробросе порта, без проброса Все варианты работают!
Ответы (1 шт):
Автор решения: D. Violet
→ Ссылка
import os
hostname = "10.10.10.11"
response = os.system("ping -n 1 " + hostname)
if response == 0:
print(hostname, 'is up!')
else:
print(hostname, 'is down!')
Если вы используете этот скрипт в unix / Linux, замените ключ -n на -c!
либо
import socket
def isOpen(ip,port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((ip, int(port)))
s.shutdown(2)
return True
except:
return False