Форум сайта python.su
Доброго дня всем.
пытаюсь написать скрипт, который бы менял значение динамического IP в файлах конфигурации BIND под WinXP.
Споткнулся на ошибке - при пропадании ADSL более полуминуты - скрипт останавливается по timeout, выдавая сообщение urllib2.URLError: <urlopen error…
Подскажите, как изменить код, чтобы при пропадании связи скрипт писал в лог сообщение и шел на новый круг опроса после запланированной паузы?
# начинаем цикл проверки внешнего ip
while True:
bind_reload = 0
# запрашиваем наш внешний IP
strURL = 'http://api.wipmania.com/'
f_url = urllib2.urlopen(urllib2.Request(strURL))
response = f_url.read()
outerIP = response.split("<br>")[0] # запомнили значение внешнего ip
f_url.close()
#
print ("Внешний ip " + outerIP)# отладочное
# читаем из файла ip предыдущего цикла
f_old_ip = open("data_ip.txt", "r")
old_ip=f_old_ip.read()
f_old_ip.close()
#
print ("записанный в файле ip: " + old_ip)# отладочное
#------------------------------------------
# сравниваем значения ip
if outerIP == old_ip:
print 'совпали'# отладочное
print (time.strftime(segodn))# отладочное
# пишем в лог о совпадении
f_log = open("storozh_ip.log", "a")
f_log.write(time.strftime(d_t) + outerIP + ' :: OK\n')
f_log.close()
# пауза 15 сек
time.sleep(15)
continue
#---------------------------------------
Офлайн
Офлайн
nukleaЗа ссылку спасибо, таких листингов в сети нашел уже немало, да вот в том то и дело, что не соображу, как это связать с тем кодом, который я привел…
http://docs.python.org/tutorial/errors.html
Отредактировано (Апрель 13, 2010 10:00:34)
Офлайн
try:
f_url = urllib2.urlopen(urllib2.Request(strURL))
except urllib2.URLError:
print('log log log')
continue # возвращаемся к while
Офлайн
nukleaАга, не весь блок, а только обращение к урлу…try:
f_url = urllib2.urlopen(urllib2.Request(strURL))
except urllib2.URLError:
print('log log log')
continue # возвращаемся к while
Отредактировано (Апрель 13, 2010 10:12:10)
Офлайн
Все получилось, благодарю.
Уже пять часов скрипт стабильно работает в качестве системного сторожа для BINDа .
Надеюсь и дальше будет без сбоев.
Еще раз спасибо.
Офлайн