|
Здравствуйте, гость ( Вход | Регистрация )
|
![]()
Сообщение
#21
|
|
![]() Участник ![]() ![]() Группа: Пользователи Сообщений: 41 Регистрация: 8.1.2009 Пользователь №: 1 729 Спасибо сказали: 18 раз ![]() |
Постепенно на перле пилится такая библиотека Net::DirectConnect.
сейчас умеется nmdc, adc, и даже микро-для-тестов- adc хаб . в текущей версии - умеет раздавать файло и делать файллисты. в планах - раздавать не хуже и вместо microdc2 в examples/stat - такая собиралка статистики свежайшая версия - svn://svn.setun.net/dcppp/trunk прошлые релизы - работает в windows, linux, freebsd, и наверно везде где есть перл. (в венде в mingw пока не собирается XS для tth - пока только cygwin) в планах - доделать, оптимизировать, web морда, cli управление, авто сбор файллистов, встроенная статистика,итд и много мыслей про децентрализацию, безхабную работу в пределах сегмента сети, [любые] другие хеши кроме tth итд. а еще эта штука тоже на нем работает может кому пригодится. |
|
|
![]() |
![]()
Сообщение
#22
|
|
![]() Я коварный Санта Клаус ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 523 Регистрация: 4.11.2008 Из: Саратов Пользователь №: 985 Спасибо сказали: 54 раза ![]() |
Самое популярное файло - порево... имхо.
|
|
|
![]()
Сообщение
#23
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 10.2.2010 Пользователь №: 6 016 Спасибо сказали: 1 раз ![]() |
сочинен вариант автоматически скачивающий самое популярное файло - examples/get.pl сам алгоритм скачивания пока сырой, для лучшести рекомендуется перезапускать скрипт напрмиер каждый час. Спасибо за модуль. Только жаль документации нет. Пытаюсь написать бота, столкнулся с некоторыми проблемами: При создании объекта указываю myport = 41111, но он все равно затирается тем, что по умолчанию прописан в модуле DirectConnect.pm такая же фигня с атрибутом auto_connect. В перле я не очень хорошо разбираюсь, поэтому прошу помочь решить проблему. код: Раскрывающийся текст Код #!/usr/bin/perl use 5.10.0; use strict; eval { use Time::HiRes qw(time sleep); }; use lib '../lib'; use Net::DirectConnect; #::clihub; use Data::Dumper; $Data::Dumper::Sortkeys = $Data::Dumper::Useqq = $Data::Dumper::Indent = 1; my $dc = Net::DirectConnect->new( 'host' => 'dchub://192.168.186.10:411', 'M' => 'A', 'myport' => 41111, 'Nick' => "spy", 'Pass' => '123', 'S' => 20, 'O' => 0, 'lock' => 'EXTENDEDPROTOCOLABCABCABCABCABCABC Pk=DCPLUSPLUS0.668ABCABC', 'cmd_sep' => ' ', 'sharesize' => 1000000000000, 'client' => 'dc++', 'V' => '0.777', 'description' => 'spy', 'connection' => 'LAN(T3)', 'email' => '', 'flag' => 1, 'log' => sub(){}, 'auto_GetINFO' => 0, ); print 'myport='.$dc->{'myport'}."\n"; exit 0; |
|
|
![]()
Сообщение
#24
|
|
![]() Участник ![]() ![]() Группа: Пользователи Сообщений: 41 Регистрация: 8.1.2009 Пользователь №: 1 729 Спасибо сказали: 18 раз ![]() |
Исправлено.
'auto_connect' => 0, - теперь работает. и любой myport. svn up Документацию пока рано делать и некогда, еще много переделывать-переименовывать.. по поводу примера - 'cmd_sep' => ' ', - лучше вообще не трогать, поломается протокол. |
|
|
![]()
Сообщение
#25
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 10.2.2010 Пользователь №: 6 016 Спасибо сказали: 1 раз ![]() |
еще неплохо было бы добавить в метод search дополнительные параметры поиска - тип файлов, размер и тип поиска по размеру (больше, меньше, равно), а то сейчас приходится юзать sendcmd
и еще вопрос у меня такой - я юзаю бота в сети за NATом, использую порт форвардинг, настройки бота следующие: M = A myport = 5556 myport_udp = 5556 myip = 10.0.0.2 (IP файервола с порт форвардингом) нужно ли какие-либо дополнительные параметры настраивать для использования за NATом? Дело в том, что результаты на поисковые запросы приходят, но их мало. Например, Linuxdc++ при поиске по слову russia возвращает ~800 результатов, а бот всеголишь ~400. Возможно остальное теряется из-за бага, но может я что-то забыл добавить? |
|
|
![]()
Сообщение
#26
|
|
![]() Участник ![]() ![]() Группа: Пользователи Сообщений: 41 Регистрация: 8.1.2009 Пользователь №: 1 729 Спасибо сказали: 18 раз ![]() |
доделал search -
$dc->search( 'lost', undef, 409483264 ); # F?T?409483264?1?lost !! search params in REVERSE order, second value - search type, autodetect if undef что равно $dc->search( 'lost', undef, 409483264, 'T', 'F' ); по поводу ната - вроде все похоже, почему так - надо дебажить. например найти запрос с 10 результаттами и смотреть как и что принимает нормальный клиент, и сравнивать с ботом. |
|
|
![]()
Сообщение
#27
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 2 Регистрация: 16.2.2010 Пользователь №: 6 098 Спасибо сказали: 0 раз ![]() |
Скажите, а умеет ли этот бот проводить поиск по tth?
т.е. есть файловый сервер, надо сделать так чтобы бот сканировал хаб на заданный tth и выводил статистику, что данный файл есть у таких-то юзеров в DC. Может кто-нить сталкивался. |
|
|
![]()
Сообщение
#28
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 10.2.2010 Пользователь №: 6 016 Спасибо сказали: 1 раз ![]() |
Библиотека Net::DirectConnect позволяет делать поиск по ттх, достаточно при поиске в методе search указать искомый TTH
я так рассчитываю банить юзеров за порнушку |
|
|
![]()
Сообщение
#29
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 2 Регистрация: 16.2.2010 Пользователь №: 6 098 Спасибо сказали: 0 раз ![]() |
А можно подробнее, если не трудно?
ситуация какова, у меня фряшка, я на ней распаковал библиотеку. Захожу в папку, запускаю stat.pl, он соединяется с нашим хабом, и вот тут вопрос, что дальше, как заставить его искать нужный tth? P.S.: извините за настойчивость, я пока только учусь работать с unix'ами, буду крайне признателен за помощь=) |
|
|
![]()
Сообщение
#30
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 10.2.2010 Пользователь №: 6 016 Спасибо сказали: 1 раз ![]() |
вот пример моего простого бота, который делает запрос по TTH и печатает результаты ответов
Раскрывающийся текст Код #!/usr/bin/perl use 5.10.0; use strict; use IO::Socket::INET; eval { use Time::HiRes qw(time sleep); }; use lib '../lib'; use Net::DirectConnect; #::clihub; use Data::Dumper; $Data::Dumper::Sortkeys = $Data::Dumper::Useqq = $Data::Dumper::Indent = 1; my $dc = Net::DirectConnect->new( 'host' => 'dchub://example.ru:411', 'Nick' => "Spy", 'Pass' => '*****', 'M' => 'A', 'reconnects' => 500, #следующие три параметра указывать если бот за NATом, на нате включить портфорвардинг 'myport' => 4444, 'myport_udp' => 4444, 'myip' => '10.0.0.2', ################################ 'S' => 20, 'O' => 0, 'sharesize' => 1000099800000, 'client' => 'dc++', 'V' => '0.777', 'description' => 'spy', 'connection' => 'LAN(T3)', 'email' => '', 'flag' => 1, 'log' => sub(){}, 'auto_GetINFO' => 0, ); #эта функция вызывается тогда когда к боту приходит поисковый запрос $dc->{'handler'}{'Search'} = sub { my $dc = shift; my $s = shift; #print $s."\n" if !($s =~ m/tth:/i); }; #эта функция вызывается тогда когда к боту приходит результат на его(бота) поисковый запрос $dc->{'handler'}{'SR'} = sub { my $dc = shift; my %s = %{ $_[1] || return }; if ($s{tth} ne '') { print $s{nick}.':::'.$s{filename}."\n"; } }; my $i = 0; while ($dc->active()) { if ($i == 1000) { $dc->search('6U4DTAKUXPXNUXNS366T5CS7ALJZWRQ2PH4ZSMI'); } $dc->work(); $i++; } $dc->wait_finish(); $dc->disconnect(); exit 0; |
|
|
![]()
Сообщение
#31
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 10.2.2010 Пользователь №: 6 016 Спасибо сказали: 1 раз ![]() |
Постепенно на перле пилится такая библиотека Net::DirectConnect. Привет. Хочу сделать еще одно предложение по расширению функционала: Сейчас метод "get" загружает файл полностью, было бы неплохо реализовать частичную загрузку с указанного места в файле и указанное кол-во байт. Такая возможность нужна для получения информации о видео, аудио файле и т.д. Скачал первые 10 Кб - и все стало ясно)) |
|
|
![]()
Сообщение
#32
|
|
![]() Участник ![]() ![]() Группа: Пользователи Сообщений: 41 Регистрация: 8.1.2009 Пользователь №: 1 729 Спасибо сказали: 18 раз ![]() |
.. не прошло и пол года, но теперь ->get умеет дополнительные параметры начала и размера файла.
не проверял. в trunk. |
|
|
![]()
Сообщение
#33
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 18 Регистрация: 9.11.2009 Пользователь №: 4 975 Спасибо сказали: 0 раз ![]() |
А как настроить его под сервер хаба ?И что нужно делать,люди помогите
|
|
|
![]()
Сообщение
#34
|
|
![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз ![]() |
Вопрос таковой, где прописывать адреса хабов, на которых нужно искать файлы??
|
|
|
![]()
Сообщение
#35
|
|
![]() Продвинутый участник ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 155 Регистрация: 11.1.2009 Пользователь №: 1 772 Спасибо сказали: 29 раз ![]() |
вроде как в параметрах запуска, типа
perl crawler.pl dchub://hub.mydc.ru dchub://coolhub.sytes.net dchub://pashahub.ru |
|
|
![]() ![]() |
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
![]() |
Ищу специалиста на позицию Perl (Lua) developer Московское представительство американской софтверной компании приглаша |
0 | Katteia | 5 757 | 25.10.2012, 15:33 Посл. сообщение: Katteia |
![]() |
пингер на perl . |
0 | Lamo | 8 006 | 5.8.2011, 23:30 Посл. сообщение: Lamo |
![]() |
Документация DBHub - Написание скриптов на Perl | 0 | Артём | 7 566 | 20.10.2010, 18:08 Посл. сообщение: Артём |
![]() |
Хаб на PHP или на Perl | 29 | omen | 33 080 | 3.8.2010, 18:33 Посл. сообщение: omen |
![]() |
Сейчас: 8.9.2024, 2:43 |