2016-05-13 2 views

ответ

0

Я получил идею от here, поэтому престижность их, код может быть что-то вроде этого

def check_alive(telnet_object): 
    try: 
     if telnet_object.sock: 
      telnet_object.sock.send(telnetlib.IAC + telnetlib.NOP) 
      telnet_object.sock.send(telnetlib.IAC + telnetlib.NOP) 
      telnet_object.sock.send(telnetlib.IAC + telnetlib.NOP) 
      return True 
    except: 
     pass 

Идея довольно проста:

  • если близко() был вызванный .sock будет 0, поэтому мы ничего не делаем
  • В противном случае мы пытаемся отправить что-то безобидное, что не должно взаимодействовать с тем, что когда-либо было основной услугой, IAC + NOP был хорошим кандидатом. LaterEdit: кажется, что делать отправки только один раз не достаточно, поэтому я просто сделал это 3 раза, это не очень профессионально, я знаю, но ... «если это выглядит глупо, но это работает ... чем это не глупо»
  • , если все идет хорошо, мы получаем «возвращение True» тыс мы получаем наш ответ, в противном случае, исключение игнорируются, и, как нет возврата, мы не получим None в качестве ответа

Я использовал этот метод для прямых и проксированных (SocksiPy) соединений с несколькими маршрутизаторами Cisco.

Смежные вопросы