Форум сайта python.su
Доброго утра друзья, не могу понять как сделать следующее: веду работу с исключением повешал таймаут и собственно как после 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: " ))
Отредактировано MasterCard (Июнь 21, 2018 02:51:43)
Офлайн
Используй теги code для отправки кода.
Офлайн
py.user.nextПодправил.
Используй теги code для отправки кода.
Офлайн
Check: 177.126.235.67:8080
connection detec
дальше не идет выполнение кода
Офлайн
И что ты пытаешься сделать? Опиши задачу.
Офлайн
py.user.nextДанная функция проверят соеденение, т.к бывает исключение я его добавил. Далее мне нужно считать заголовок и если такой заголовок содержится, написать любое слово далее вставить новый ип. Коннект он проверяет, а вот дальше не идет(
И что ты пытаешься сделать? Опиши задачу.
Офлайн
Надо return True убрать.
Опиши задачу точно, без описывания кода. Твой код вообще безграмотный и там куча неправильных моментов как синтаксических, так и алгоритмических (то есть даже без кода, сам алгоритм кривой). Вместо того, чтобы его править, надо его стереть и заново написать код. Но для этого надо знать задачу.
Отредактировано py.user.next (Июнь 21, 2018 04:21:22)
Офлайн
Проверить соеденение, если оно есть перейти к чтению заголовка, если заголовок присутствует вывести сообщение, если же нет передать параметр в другую ф-цию, все сделать это в одной-фции и с использованием таймаута, и исключения. Убрал return True, по прежнему)
Отредактировано MasterCard (Июнь 21, 2018 04:26:30)
Офлайн
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()
Отредактировано py.user.next (Июнь 21, 2018 08:51:02)
Офлайн
py.user.nextБлагодарствую, буду дома, начну разбирать)
Офлайн