Страницы

Поиск по вопросам

воскресенье, 29 марта 2020 г.

Проверка пинга хоста на Python

#python #ip #os #ping


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

import telnetlib
import os

Host = input("Введите Ip адрес свитча: ")
Ping = os.system("ping -c 1 " + Host)

if Ping == 0:

    User = input("Username: ").encode()
    Password = input("Password: ").encode()
    tn = telnetlib.Telnet(Host)
    tn.read_until(b'Username:')
    tn.write(User + b'\n')
    tn.read_until(b'Password:')
    tn.write(Password + b'\n')

    tn.write(b'terminal length 512' + b'\n')
    inputCommand = input("Введите команду: ").encode()
    tn.write(inputCommand + b'\n')
    exitLine = input("Введите exit для завершения: ").encode()
    tn.write(exitLine + b'\n')
    showInf = tn.read_all().decode()
    print(showInf)

else:

    print(Host, "Недоступен")

    


Ответы

Ответ 1



Вы можете использовать библиотеку pythonping. Пример: if ping("8.8.8.8", verbose=false)[0].success: print("Successful!") Можете больше почитать в документации. verbose - отвечает за вывод на экран, функция возвращает массив ответов. Чтобы выйти из программы, вызвав соответствующую функцию, вызовите sys.exit(0), перед этим импортировав sys

Комментариев нет:

Отправить комментарий