четверг, 19 сентября 2013 г.

Поменять User-Agent в Deluge

Как поменять UserAgent в битторрент-клиенте Deluge?

Во-первых, надо сперва сказать, зачем это вообще делать. Некоторые трекеры не любят β и RC-версии и не позволяют ими пользоваться. А один мой знакомый трекер вообще взял да и забанил все версии Deluge после обнаружения там критический уязвимости. Или есть маргинальные трекеры, которые позволяют скачивать с них только определённым клиентам. Так что или поднимай wine или виртуальную машину, и ставь туда рекомендованный клиент, либо - подменяй юзерагент, чтоб твой битторрент-клиент выдавал себя за другого клиента.

Что такое юзерагент? Это строка, которую клиент отправляет на трекер, представляясь таким образом. У битторрент-клиентов юзерагент, как и у веб-браузеров, тоже есть. По этой строке трекер и идентифицирует клиента. Эвристические методы определения клиента по особенностям работы с протоколом неточные.

Описанный ниже метод вполне подходит для Linux, и для Windows, и для MacOS, и вообще для любой операционной системы, на которой работает Deluge. Этот битторрент-клиент написан на питоне, его исходники поставляются вместе с ним, так что главной проблемой будет просто их найти, чтоб внести соответствующие правки. Под линуксом это сделать наверняка сложнее, потому что они могут быть засунуты вообще хер знает куда, в зависимости от остроумия разработчиков и ментейнеров дистрибутива. Под виндой наверняка где-то есть папка C:/Program files/Deluge, где всё и хранится.

Так вот, нам нужен файл core.py. В моём дистрибутиве линукса (LMDE/Debian7) я нашёл в папке /usr/lib/python2.7/dist-packages/deluge/core симлинк на сам файл: /usr/share/pyshared/delude/core/core.py. Открываем его и ищем self.settings.user_agent. Дальше всё понятно или надо расписывать? :)

У меня сделано вот так:
# Set the user agent
self.settings = lt.session_settings()
#self.settings.user_agent = "Deluge %s" % deluge.common.get_version()
self.settings.user_agent = "Transmission/2.77 (14031)"
Не забудьте рестартить Deluge, чтоб он подцепил изменения. Особое внимание уделите пробелам в начале строк; это python, так что лишний или недостающий пробел порушат всю программу.

Комментариев нет:

Отправка комментария

Ублюдочный Гугл поломал форму комментариев. Извините.