2016-03-19 7 views
0

Я работаю над проектом, в котором нам нужно собрать идентификатор bitorrent infohash, запущенный в нашей небольшой сети интернет-провайдеров. используя зеркалирование портов, мы можем передать весь wan-трафик на сервер и запустить инструменты tcpdump или любой другой инструмент, чтобы найти загрузку идентификатора infohash клиентом bitorrent. напримерКак захватить идентификатор bistrent infohash в сети с помощью tcpdump или любого другого инструмента с открытым исходным кодом?

tcpflow -p -c -i eth1 tcp | grep -oE '(GET) .* HTTP/1.[01].*' 

этот код показывает результат, как этот

GET /announce?info_hash=N%a1%94%17%2c%11%aa%90%9c%0a%1a0%9d%b2%cfy%08A%03%16&peer_id=-BT7950-%f1%a2%d8%8fO%d7%f9%bc%f1%28%15%26&port=19211&uploaded=55918592&downloaded=0&left=0&corrupt=0&key=21594C0B&numwant=200&compact=1&no_peer_id=1 HTTP/1.1 

теперь нам нужно захватить только infohash и сохранить его в базу данных журнала или тузд

Пожалуйста, вы можете сказать мне, какой инструмент может сделать что-то вроде этого

ответ

1

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

  1. TCP, собирать пакеты потока. вы уже делаете это с tcpflow. tshark - wirehark CLI - тоже может это сделать.
  2. HTTP, извлеките значение заголовка GET. Простое регулярное выражение выполнило бы здесь работу.
  3. URI, извлечение строки запроса
  4. применение/х-WWW-форм-urlencoded, извлечение пара info_hash значения ключа и обработка процентов кодирования

В течение последних двух шагов, я бы искать инструменты или библиотеки на вашем языке программирования для их обработки.

+0

любой язык программирования, но мне эта вещь нужна. как я могу связаться с вами, если я хочу, чтобы вы сделали эту работу? –