Pull to refresh

Comments 35

на яндекс можно быложе только почту увести, а сам домен запарковать где-то в другом месте…
К сожалению вменяемых хостингов с возможностью бесплатно припарковать домен второго/третьего уровня все меньше — DynDNS всех скупает…
EveryDNS и EditDNS например уже куплены и готовятся к переезду (о чем можно судить по большому баннеру на главной)
долгие поиски привели меня на pointhq.com, в котором за год не было повода разочароваться
dns.he.net. Не скупит — силёнок не хватит.
юзаю freedns.afraid.org
вполне вменяемый)
тоже уже второй год его использую, проблем нет и обновление айпишки через ссылку очень удобно(cron+wget)
Первым делом я отправился к всезнающему Google в поисках хоть какой нибудь информации об API сервисов Яндекса.

Шикарная фраза :-)
По моему, не стоит путать динамический DNS с нормальным. У первого TTL мало, у второго значительное.
UFO just landed and posted this here
UFO just landed and posted this here
Я имел ввиду для указанного по моей ссылке сервиса, чтобы им могли пользоваться обычные люди =)
Я конечно понимаю что Google и все дела, но кажется что API яндекса логичнее было искать самим яндексом.
Поищи например по запросу «Яндекс карты на сайт»
yandex.ru/yandsearch?text=%D0%AF%D0%BD%D0%B4%D0%B5%D0%BA%D1%81+%D0%BA%D0%B0%D1%80%D1%82%D1%8B+%D0%BD%D0%B0+%D1%81%D0%B0%D0%B9%D1%82&lr=213

www.google.ru/search?ie=UTF-8&hl=ru&q=%25D0%25AF%25D0%25BD%25D0%25B4%25D0%25B5%25D0%25BA%25D1%2581%2520%25D0%25BA%25D0%25B0%25D1%2580%25D1%2582%25D1%258B%2520%25D0%25BD%25D0%25B0%2520%25D1%2581%25D0%25B0%25D0%25B9%25D1%2582

Какие после этого могут быть вопросы? API яндекса ищите только в гугле))
Ссылки неудачно вставились. В общем просто забейте указанный запрос и сравните качество первого результата в выдаче
Не используйте httplib, он зело плохой на нагрузке >0. Странные глюки с кешированием и отваливающимися запросами. В свое время пришлось переписать couchdb-python на использование curl вместо оригинального httlib. 500-е ошибки на продакшн-сервере как рукой сняло.
В смысле использовать pycurl вместо httplib/urllib?
К urllib никаких претензий, благо что он в stdlib питона. Простой как топор и работает нормально, а вот httplib берет на себя черезчур много. Пул коннектов, кэш, куки. В итоге, почему-то, при увеличенном loadaverage, начинаются глюки.
Чего-то вы путаете. urllib работает ПОВЕРХ httplib. Похоже вы про httplib2 говорите?
Ммм… Да, httplib2 :)

Извиняюсь.
Я для чего-то более сложного чем просто запрос-ответ — pycurl. Он банально функциональнее и удобнее. Не претендую на вселенскую истину.
Там проблема с числом открытых файлов при множестве DNS-запросов в стандартной библиотеке. Мы полечили исправив немого пул коннектов, но не очень хорошо получилось. Вообще с curl это лучше решение, может быть тоже забьем и его заюзаем.
Как всегда код поругаю…
1) Уж очень сильная любовь к регуляркам. Надо искоренять!
2) Для конфигов ну хотя-бы ConfigParser (.ini файлы)
3) Вместо
content = 'login={0}&passwd={1}&timestamp={2}'
content = content.format(self._login, self._passwd, self.timestamp())
и т.п. делаем
content=urllib.urlencode({
    'login': self._login,
    'passwd': self._passwd,
    'timestamp': self.timestamp()})

4) С timestamp не понял плясок… Можно просто
int(time.time()*1000)

5) Тут не критично, но вообще файлы после использования принято закрывать ибо есть лимит на 1024 открытых файла для программы
file = open('config', 'r')
config = file.read()
заменяем на
file = open('config', 'r')
config = file.read()
file.close()
а еще лучше на
with open('config', 'r') as file:
    config = file.read()

6) использовать в качестве имен переменных имена встроенных функций неприкольно. Трудно будет баг отловить. Так что заменяем
with open('config', 'r') as file:
    config = file.read()
на
with open('config', 'r') as f:
    config = f.read()
(т.к. file это встроенная функция)

Но вообще, для первой программы на питоне очень даже ничего!
Спасибо за замечания, я до urllib еще не добрался в изучении, впрочем как и до многих других тонкостей…
По поводу timestamp — у Яндекса timestamp это количество миллисекунд с UNIX Time (=
> По поводу timestamp — у Яндекса timestamp это количество миллисекунд с UNIX Time (=

Так time.time() — количество секунд с unixtime. Домножаешь на 1000 — получаешь миллисекунды.

Они к javascript'ному time(), видимо, привязались, там тож миллисекунды по умолчанию выдает.
In [1]: import time, datetime
In [2]: print int(time.time())*1000 + datetime.datetime.now().microsecond/1000 ; print int(time.time()*1000)
1309337559396
1309337559396

До точки с запятой ваш вариант, после — мой. Результаты одинаковые. Фишка в том, что (у меня по крайней мере) time.time() возвращает время в виде float с миллисекундами. Хотя если делать int(time.time())*1000 вместо int(time.time()*1000) то этого можно и не заметить.

Еще один побочный эффект вашего подхода — вы 2 раза обращаетесь к системным часам: один раз в datetime.datetime.now() и второй раз в time.time(). И, строго говоря, время может быть получено разное т.к. между вызовами datetime.datetime.now() и time.time() тоже проходит какое-то время)) Если хочется из datetime.now() получить его UNIX timestamp, то проще всего сделать как-то так так:
dt_now=datetime.datetime.now()
time.mktime(dt_now.timetuple())
Прописали бы CNAME на dyndns-овское имя.
А как быстро обновляются зоны на yandex после отправки запроса?
Просто сейчас начал писать нечто похожее на c++ для reg.ru но у них походу после отправки данных еще есть тайаут на вступление изменений в силу… минут 15, что не очень приятно, ведь сайт это время не доступен…

Как обстоят с этим дела у яндекса?
Как быстро на это реагировал канувший в историю фрии аккаунт на dyndns?

Спасибо.
Извините, промазал с ответом. Смотрите коммент ниже.
Это зависит не только от DNS-сервиса, но и от провайдеров (как конечного, так и магистральных).
У меня на разных провайдерах DNS-хостинг Яндекса обновлял записи менее чем за 3 минуты.
Кроме того, вы сами настраиваете параметры зоны, такие как TTL, REFRESH, RETRY и т.д.
Ну на регру так же обстоит ситуация.
В итоге их 15 минутный таймаут на самом деле 2-5 минуты… так что не критично кого выбирать.

А есть идеи как решить проблему с недоступностью сайта эти 2-5 минут?
Просто интересно получается… вот тебе и бесплатный ddns от вроде как не левых компаний :)
странно…
Sign up to leave a comment.

Articles