LINUX.ORG.RU

403 при соединении с сервером

 , , ,


0

1

Задумал я тут написать простенький торрент-клиент на чистой java без сторонних либ. Просто ради опыта работы с сокетами и этим самым протоколом битторент. В общем после парсинга файла и составлением такого URL:

http://bt4.rutracker.org/ann?uk=PASS?info_hash=%8a%68%e2%f9%48%1a%56%e2%4e%b9%a9%3b%ac%74%70%e1%64%ef%81%be&peer_id=EX_01297060581535908&port=6881&uploaded=0&downloaded=0&left=155062&compact=0&event=started
(вместо PASS мой идентификатор на рутрекере) при попытке создать поток
URLConnection connect = new URL(url).openConnection();;
BufferedInputStream BufRead = new BufferedInputStream(connect.getInputStream());
лезет эксепшен
java.io.IOException: Server returned HTTP response code: 403 for URL: http://bt4.rutracker.org/ann?uk=PASS?info_hash=%8a%68%e2%f9%48%1a%56%e2%4e%b9%a9%3b%ac%74%70%e1%64%ef%81%be&peer_id=EX_01297060581535908&port=6881&uploaded=0&downloaded=0&left=155062&compact=0&event=started
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1615)
Склонен к тому что рутрекеру просто не нравится мой клиент и если умные лорчане скажут как замаскироваться под какой нибудь Transmission все будет ок. Так ли это, и что можно с этим сделать? Торрент-файл живой. В общем, прошу помощи разобраться.

★★★★

Последнее исправление: comp00 (всего исправлений: 1)

Это что за URL такой? У рутрекера они выглядят так:

укорочение url привело лишь к изменению адреса в эксепшене

comp00 ★★★★
() автор топика
Ответ на: комментарий от comp00

Да я глупость написал, не знал что там GET запросом передаются данные на трекер.

Склонен к тому что рутрекеру просто не нравится мой клиент

Ну, попробуй User Agent подменить.

firestarter ★★★☆
()
Последнее исправление: firestarter (всего исправлений: 1)
Ответ на: комментарий от firestarter

весь вопрос: как?
в готовых либах это делается каким нибудь методом
у меня этого метода нет. Вообще надо потестить как оно ведет себя с другими торрентами, мб рутрекеропроблемы

comp00 ★★★★
() автор топика
Ответ на: комментарий от comp00

весь вопрос: как?

В запросе поле User-Agent, можно посмотреть доки / исходники: можно ли менять. В крайнем случае: можно проверить через socks-proxy, меняющий ua, просто запустив бинарь через tsocks.

anonymous
()
Ответ на: комментарий от comp00

Ну так http запросы то ты всё равно ведь шлёшь чем-то. Не писал же ты реализацию и этого протокола с нуля? Наверняка используемая тобой функция имеет такую возможность.

firestarter ★★★☆
()
Ответ на: комментарий от firestarter

как выяснил человек выше — умеет :)

comp00 ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.