看到这篇文章的人或多或少都用过BT种子搜索神器,无论如何,稳定性都不靠谱,当然比特彗星就有这个功能.本着人人为我,我为人人的开源思想,自己开始尝试制作一个类似的工具.
种子数据库的建立
既然要搜索,自然要有数据,这数据从哪里来呢?
从网站爬虽然是种方法,但明显不理想.
BT大家都已经熟悉了,还有一个DHT应该也听说过.
这里我们就要依靠DHT来获取
首先要加入到DHT网络中
通过跟大家的交互,获取更多的node
自己的DHT本身也对外提供服务器
关键点来了
通过getpeers请求可以拿到hash值自己再通过BT去下载
本身也会接受一些hash通告请求
随机网络越来越活跃,所获取的hash也就越来越多,可以搭建自己的种子数据库了.
以上思路是通用的,大家可以选择自己熟悉的语言进行开发.
基于libtorrent-rasterbar制作
源码提供了bt种子下载和dht服务的示例,我只是将2者结合在一起
代码见
https://gitee/mypalyerdemo/btsearchapp
当前实现比较简单,保存为csv文件,方便查看
日志比较简单,就添加任务,保存文件
数据内容如下
处理上还是有些问题,但不影响使用,用数据库更好
重要说明
我们国内的情况基本都是内网IP
路由下再来一次路由就不行了,端口映射就会失败
顶多只能一层路由
如果接在第二个路由器上,需要将第二个路由器改成AP模式(连第二个路由器的终端也在第一个路由器的网段上)
路由器支持UPNP,建议开启
后期扩展
种子数据可以用数据库存,再来个简单的查询页面,完全可以自己搭建个种子搜索网站,再放几个广告实现自给自足(可能吧,呵呵呵)
一个简单的程序页面
看到这篇文章的人或多或少都用过BT种子搜索神器,无论如何,稳定性都不靠谱,当然比特彗星就有这个功能.本着人人为我,我为人人的开源思想,自己开始尝试制作一个类似的工具.
种子数据库的建立
既然要搜索,自然要有数据,这数据从哪里来呢?
从网站爬虽然是种方法,但明显不理想.
BT大家都已经熟悉了,还有一个DHT应该也听说过.
这里我们就要依靠DHT来获取
首先要加入到DHT网络中
通过跟大家的交互,获取更多的node
自己的DHT本身也对外提供服务器
关键点来了
通过getpeers请求可以拿到hash值自己再通过BT去下载
本身也会接受一些hash通告请求
随机网络越来越活跃,所获取的hash也就越来越多,可以搭建自己的种子数据库了.
以上思路是通用的,大家可以选择自己熟悉的语言进行开发.
基于libtorrent-rasterbar制作
源码提供了bt种子下载和dht服务的示例,我只是将2者结合在一起
代码见
https://gitee/mypalyerdemo/btsearchapp
当前实现比较简单,保存为csv文件,方便查看
日志比较简单,就添加任务,保存文件
数据内容如下
处理上还是有些问题,但不影响使用,用数据库更好
重要说明
我们国内的情况基本都是内网IP
路由下再来一次路由就不行了,端口映射就会失败
顶多只能一层路由
如果接在第二个路由器上,需要将第二个路由器改成AP模式(连第二个路由器的终端也在第一个路由器的网段上)
路由器支持UPNP,建议开启
后期扩展
种子数据可以用数据库存,再来个简单的查询页面,完全可以自己搭建个种子搜索网站,再放几个广告实现自给自足(可能吧,呵呵呵)
一个简单的程序页面