Найти - Пользователи
Полная версия: Работа с исключениями, выполнение после else if/else
Начало » Python для новичков » Работа с исключениями, выполнение после else if/else
1
MasterCard
Доброго утра друзья, не могу понять как сделать следующее: веду работу с исключением повешал таймаут и собственно как после if test == ‘Basic realm=“RT-N13U.B1”’: сделать еще одно else?

 import requests
def vpn(url):
    session = requests.session()
    try:
       r = requests.get('http://' + url, timeout=10)
       test = r.headers.get('WWW-Authenticate')
    except requests.exceptions.ConnectTimeout:
      print("11111")
      return False
    else:
         print("connection detec")
         return True
    if test == 'Basic realm="RT-N13U.B1"':
         print("BlaBla")
         return 0
    else: 
         print("detect")    
         return 1   
result = False and 0
while result != True and 1:
    vpn(input("Check: " ))
py.user.next
Используй теги code для отправки кода.
MasterCard
py.user.next
Используй теги code для отправки кода.
Подправил.
MasterCard
Check: 177.126.235.67:8080
connection detec
дальше не идет выполнение кода
py.user.next
И что ты пытаешься сделать? Опиши задачу.
MasterCard
py.user.next
И что ты пытаешься сделать? Опиши задачу.
Данная функция проверят соеденение, т.к бывает исключение я его добавил. Далее мне нужно считать заголовок и если такой заголовок содержится, написать любое слово далее вставить новый ип. Коннект он проверяет, а вот дальше не идет(
py.user.next
Надо return True убрать.

Опиши задачу точно, без описывания кода. Твой код вообще безграмотный и там куча неправильных моментов как синтаксических, так и алгоритмических (то есть даже без кода, сам алгоритм кривой). Вместо того, чтобы его править, надо его стереть и заново написать код. Но для этого надо знать задачу.
MasterCard
Проверить соеденение, если оно есть перейти к чтению заголовка, если заголовок присутствует вывести сообщение, если же нет передать параметр в другую ф-цию, все сделать это в одной-фции и с использованием таймаута, и исключения. Убрал return True, по прежнему)
py.user.next
  
import requests
 
class TimeoutError(Exception): pass
 
def process():
    ip = input("Check: ")
    try:
        auth = get_auth(make_url_from_ip(ip))
    except TimeoutError:
        print('error: timeout')
    print('See auth info: {}'.format(auth))
 
def get_auth(url, timeout=10, auth_header='WWW-Authenticate'):
    session = requests.Session()
    try:
        r = session.get(url, timeout=timeout)
    except requests.exceptions.ConnectTimeout:
        raise TimeoutError
    header = r.headers.get(auth_header)
    return header
 
def make_url_from_ip(ip):
    return 'https://' + ip
 
def main():
    while True:
        process()
 
if __name__ == '__main__':
    main()
MasterCard
py.user.next
Благодарствую, буду дома, начну разбирать)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB