$Search
Материал из MyDC's Wiki
Команда протокола NMDC.
Синтаксис
Пользователь в активном режиме:
$Search {ip}:{порт} {строка_поиска}|
Пользователь в пассивном режиме:
$Search Hub:{ник} {строка_поиска}|
Направление команды
- Клиент ---> Хаб
- Хаб ---> Клиент
- Хаб ---> Хаб
Описание
- Данная команда используется для начала поиска файлов на хабе.
- {ip} — IP-адрес активного пользователя.
- {порт} — порт UDP, который клиент слушает для приёма от других клиентов ответов на запрос.
- {ник} — ник пассивного пользователя.
- {строка_поиска} — строка поиска, которая описывает файл, который ищет клиент. Формат {строки_поиска} не зависит от режима подключения клиента (актив, пассив). Части этой строки разделяются знаками вопроса ('?'):
{размер_ограничен}?{максимальный_размер}?{размер}?{тип_данных}?{поисковый_параметр}
- {размер_ограничен} — флаг наличия ограничений размера файла. Принимает значение 'T', если поиск должен быть ограничен максимальным или минимальным размером, иначе 'F'.
- {максимальный_размер} — флаг типа ограничения размера файла. Принимает значение 'F', если {размер_ограничен} равен 'F' или если размер ограничения устанавливает более низкий предел размера файла, инача 'T'.
- {размер} — минимальный или максимальный размер файла в байтах (в случае если указан {максимальный_размер}) и если {размер_ограничен} принимает значение 'T', иначе 0.
- {тип_данных} — ограничение поиска по типу файлов. Данное ограничение принимает одно из следующих целых чисел:
- 1 для любого типа файлов;
- 2 для аудио файлов ("mp3", "mp2", "wav", "au", "rm", "mid", "sm");
- 3 для архивов и сжатых файлов ("zip", "arj", "rar", "lzh", "gz", "z", "arc", "pak");
- 4 для документов и текстовых файлов ("doc", "txt", "wri", "pdf", "ps", "tex");
- 5 для выполняемых файлов ("pm", "exe", "bat", "com");
- 6 для картинок ("gif", "jpg", "jpeg", "bmp", "pcx", "png", "wmf", "psd");
- 7 для видео ("mpg", "mpeg", "avi", "asf", "mov");
- 8 для папок;
- 9 для поиска по TTH файла;
- 10 для образов CD/DVD.
- {тип_данных} — ограничение поиска по типу файлов. Данное ограничение принимает одно из следующих целых чисел:
- {поисковый_параметр} — поисковый параметр позволяет другим клиентам определить совпадение файлов.
- Если тип поиска установлен в 9, то поисковый параметр должен представлять из себя TTH искомого файла.
- Как и во всех сообщениях NMDC, в поисковом параметре следует избегать употребления следующих символов: "$", "|" и "&".
- Все пробелы в поисковом параметре заменяются на знак '$'.
После отправки на хаб этого сообщения, хаб должен переслать его всем пользователям хаба без изменений. Каждый пользователь с одним или более совпадениями должен послать UDP-пакет на {ip}:{порт}, в случае активного запроса, или на хаб, в случае пассивного запроса.
Смотрите описание команды $SR для детального разбора.
Примеры
$Search 10.10.10.10:412 T?T?500000?1?Gentoo$2005| $Search Hub:Вася T?T?500000?1?Gentoo$2005| $Search 10.10.10.10:3746 F?T?0?9?TTH:TO32WPD6AQE7VA7654HEAM5GKFQGIL7F2BEKFNA| $Search Hub:Пётр F?T?0?9?TTH:TO32WPD6AQE7VA7654HEAM5GKFQGIL7F2BEKFNA|