如何使用tcpdump或任何其他开放的scource工具捕获网络中的bitorrent infohash id?

时间:2016-03-19 06:58:26

标签: mysql bittorrent

我正在开展一个项目,我们需要收集在我们的小型ISP网络中运行的bitorrent infohash id。使用端口镜像我们可以将所有wan流量传递到服务器并运行tcpdump工具或任何其他工具来查找bitorrent客户端的infohash id下载。例如

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并将其存储到日志或mysql数据库

你可以告诉我哪种工具可以做这样的事情

1 个答案:

答案 0 :(得分:1)

根据您想要的严谨程度,您必须解码以下协议层:

  1. TCP,汇编流的数据包。你已经用tcpflow做了。 tshark - wireshark的CLI - 也可以这样做。
  2. HTTP,提取GET标头的值。一个简单的正则表达式可以在这里完成工作。
  3. URI,提取查询字符串
  4. application / x-www-form-urlencoded,info_hash键值对提取和处理百分比编码
  5. 对于最后两个步骤,我会用您选择的编程语言中的工具或库来处理它们。