如何使用 tcpdump 或任何其他开源工具在网络中捕获比特流信息哈希 ID?
how to capture bitorrent infohash id in network using tcpdump or any other open scource tool?
我正在做一个项目,我们需要在我们的小型 ISP 网络中收集 bitorrent infohash id 运行ning。使用端口镜像,我们可以将所有 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 数据库
你能告诉我哪个工具可以做这样的事情吗
根据您想要的严谨程度,您必须解码以下协议层:
- TCP,assemble 个流的数据包。你已经在用 tcpflow 这样做了。 tshark - wireshark 的 CLI - 也可以做到这一点。
- HTTP,提取GET头的值。一个简单的正则表达式就可以完成这里的工作。
- URI,提取查询字符串
- application/x-www-form-urlencoded,
info_hash
键值对提取和百分比编码处理
对于最后两个步骤,我会寻找使用您选择的编程语言的工具或库来处理它们。
我正在做一个项目,我们需要在我们的小型 ISP 网络中收集 bitorrent infohash id 运行ning。使用端口镜像,我们可以将所有 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 数据库
你能告诉我哪个工具可以做这样的事情吗
根据您想要的严谨程度,您必须解码以下协议层:
- TCP,assemble 个流的数据包。你已经在用 tcpflow 这样做了。 tshark - wireshark 的 CLI - 也可以做到这一点。
- HTTP,提取GET头的值。一个简单的正则表达式就可以完成这里的工作。
- URI,提取查询字符串
- application/x-www-form-urlencoded,
info_hash
键值对提取和百分比编码处理
对于最后两个步骤,我会寻找使用您选择的编程语言的工具或库来处理它们。