直接上程序界面,了解整体工作流程是什么样子的,求服务器进行挂机测试,需要固定IP,空间大概需要10G左右(主要是BT种子占用空间过大),最好有SQLSERVER来做为存储数据库,目前采用的是ACCESS数据库做为测试,怕后期数据过百万,对网站进行查询操作很慢。

如果程序运行的时间够长,基本上网络上的种子都会过来,相当于搜片神器了.

开源地址:https://github.com/h31h31/H31DHTMgr

程序下载:H31DHT下载

也提供ASP网站的访问模式:

正在运行中的状态:

本次主要介绍对DHT磁力搜索的HASH文件进行处理操作流程。

后台处理程序主要采用C#里面读取文件类来进行读取,目前文件格式分为两种,一种是从http://torrage.com/sync下载回来的文件进行处理,

另外一种是采用C++程序对DHT网络中的HASH文件进行搜索存储的自定义文件,

里面有HASH值和时间IP等信息,可以通过这些IP值分析出对方电脑上有哪些BT文件,当然这里面的HASH值对应的文件对应的可是当前活跃在网络上的文件,与上面网站上下载的固定的文件值有区别,

有了这些IP值,个人也可以做些行为分析方面的工作,比如哪些城市的IP在下载些什么类型的文件。

下面介绍下数据库方面的设计工作:

1.初步考虑到SQLSERVER对自己电脑工作速度会有影响,没有安装SQLSERVER数据库,采用ACCESS来进行处理操作;

2.ACCESS数据库每个表的大小最好控制不要超过4G,所以设计每表不超过100百万条数据;

3.对BT种子文件进行解析后,提取里面的文件名字,按照文件类型存储到不同的表中,主要分为6大类,电影,音乐,图片,书箱,程序,其它类,

4.由于BT种子里面语言对应的不一样,有中文,英文,日文,韩国等语言,对于搜索界面如果全部存储到一块,没有什么问题,但会影响查询速度,因为中国人一般喜欢用中文查询,如果想查日文,对选项进行选择一下,这样会对所有的表查询都会有很大提高,因为每个表的文件都基本上针对几种语言;

5.对于BT种子里面的文件列表直接采用100百万一个表,如果超过了,直接存储第二块表,因为主表里面有存储自己的文件列表在哪个表的关键字段;

6.另外对数据库信息也比较严谨一些,由于种子文件里面有很多广告信息,比如视频种子里面经常有网站URL,TXT,MHT等信息链接,程序经过初步判断直接不存储到文件表数据库中,占用数据库空间,影响查询速度,另外查询出来显示列表也不好看.

7.对于一个种子里面经常有>200多个的种子文件也没有进行存储,一个种子有很多文件也比较浪费空间,再说这种种子保存下来基本上都没什么意义,直接PASS;

8.对于文件名里面有网站信息的也采取的过滤措施,对查询有很好帮助.

数据库表设计列表:

存储DHT文件名字的表:

存储种子文件列表:

--------------------------下面先介绍一下DHT的工作原理--------------------------------

DHT网络本质上是一个用于查询的网络,其用于查询一个资源有哪些计算机正在下载。每个资源都有一个20字节长度的ID用于标示,称为infohash。当一个程序作为DHT节点加入这个网络时,就会有其他节点来向你查询,当你做出回应后,对方就会记录下你。对方还会询问其他节点,当对方开始下载这个infohash对应的资源时,他就会告诉所有曾经询问过的节点,包括你。这个时候就可以确定,这个infohash对应的资源在这个网络中是有效的。

关于这个网络的工作原理,参看Kevin写的:P2P中DHT网络爬虫以及写了个磁力搜索的网页。

获取到infohash后能做什么?关键点在于,我们现在使用的磁力链接(magnet url),是和infohash对应起来的。也就是拿到infohash,就等于拿到一个磁力链接。但是这个爬虫还需要建立资源的信息,这些信息来源于种子文件。种子文件其实也是对应到一个资源,种子文件包含资源名、描述、文件列表、文件大小等信息。获取到infohash时,其实也获取到了对应的计算机地址,我们可以在这些计算机上下载到对应的种子文件。

在获取到infohash后,从一些提供映射磁力链到种子文件服务的网站上直接下载了对应的种子。

http://torrage.com
https://zoink.it
http://bt.box.n0808.com

-------------------------我们后台处理程序就从上面进行种子的下载工作---------------------------

下面重点介绍下我们程序的模块设计:

1.H31SQL类主要方面进行ACCESS和SQLSERVER数据库操作进行初步封装的一个类;

2.H31Debug主要是日志输出类

3.H31Down主要是下载BT种子文件进行的类;

4.TorrentFile类是用来解析BT种子文件类,由于目前可能有的BT种子格式对不上,有些文件解析不上;

5. MainForm主程序界面。

------------------------------------

下面介绍程序处理数据的主要流程:

1.读取本地文件,采用正则表达式对数据进行提取

+ View Code

  2.从网站下载BT种子文件来进行处理

+ View Code

3.通过BT文件解析类来读取文件名和列表

4.通过正确正则表达式过滤掉WWW. BBS. 等网站信息,因为这样会影响搜索结果.

+ View Code

5.判断文件名是中英文,日文等信息存储到不同的表中;

+ View Code

开源地址:https://github.com/h31h31/H31DHTMgr

程序下载:H31DHT下载

下一文章准备对DHT的研究进行文章介绍.如果大家推荐度比较高,我下一步过两天就开源C++写的H31DHT数据抓取数据的程序,程序都是采用VS2005编写.

第一次运行H31DHTMgr程序可能没有数据,可以先从从 http://torrage.com/sync 下载一个TXT文件回来进行处理 ;

第一次运行H31DHT数据抓取程序可能很久才有几要数据回来,DHT网络好像对固定IP的比较喜欢,返回信息比较多,所以ADSL的抓取速度也不会很快.

由于DHT获取的种子内容带AV内容的多很多,所以不提供ASP网站查询的代码工作,如果提供境外服务器测试,可以提供ASP网站查询代码.

希望有兴趣的朋友一起把这个后台管理程序修改得更加完美一些.

转载于:https://www.cnblogs.com/Iingdong/p/4615099.html

使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)相关推荐

  1. # 解析bt文件_磁力链接和BT种子使用方法

    目前用的最多的是磁力链接和BT种子,不过好多人并不太会使用,因此写个教程给大家说明一下. 何为磁力链接:简单地说,磁力链接是一种特殊链接,但是它与传统基于文件的位置或名称的普通链接(如http://x ...

  2. [搜片神器]BT种子下载超时很多的问题分析

    继续接着第一篇写:使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)[搜片神器] 谢谢园子朋友的支持,已经找到个VPS进行测试,国外的服务器: h31bt.org  大家可以给提点意 ...

  3. Ubuntu 能直接搜 BT 种子了

    Ubuntu的Dash搜索工具允许用户搜索本地和在线资源如亚马逊和维基百科上的内容.现在,一位第三方开发者为Dash搜索工具加入了BT搜索功能,允许用户搜索海盗湾上的torrent文件.这项功能获得了 ...

  4. 利用DHT网络,爬取bt种子。

    DHT网络爬虫 传统的Bittorrent服务 传统的BT服务是由两部份组成的,tracker服务和p2p服务,通过前者用户可以知道谁拥有资源,后者是通过前者向拥有资源的用户发起下载. Tracker ...

  5. 网络资源下载方式:http/https、ftp/sftp、BT种子、磁力下载、ed2k下载等的区别

    文章目录 参考资料 序言 中心化下载 http/https下载 ftp/sftp下载 http与ftp下载方式的不同 中心化下载的缺点 去中心化下载 BT种子下载 磁力下载 ed2k下载 推荐的下载器 ...

  6. 【JAVA】从0开始写DHT/磁力爬虫 01 序章

    前段时间空闲时间比较多,又迫于想看的美剧找不到合适的资源,于是萌生了为何不自己实现一个DHT爬虫来获取磁力/种子资源搭建一个属于自己的文件索引库呢? 说做就做,要想做磁力爬虫就要先了解一下什么是DHT ...

  7. 磁力搜索第二版-dhtcrawler2

    dhtcrawler最早的版本有很多问题,修复过的最大的一个问题是关于erlang定时器的,在DHT实现中,需要对每个节点每个peer做超时处理,在erlang中的做法直接是针对每个节点注册了一个定时 ...

  8. 应大数据时代而写了个磁力搜索的网页- WWW.MOVIH.COM 磁力

    应大数据时代而写了个磁力搜索的网页- 索马里搜索磁力 http://www.,movih.com/ BT磁力示例网站:WWW.MOVIH.COM 采用分布式架构: JAVA系统:JBOSS7+EJB3 ...

  9. 利用DHT网络原理制作bt采集

    P2P系统的应用越来越广泛,在文件共享.流媒体服务.即时通讯交流.计算和存储能力共享以及协同处理与服务等方面都能看到P2P的存在,一些P2P应用如Napster.eMule.BitTorrent等早已 ...

最新文章

  1. 二代数据 模拟软件wgsim
  2. 我国第一台微型计算机诞生于哪一年,2015计算机一级《MSOffice》章节练习题及答案(1)...
  3. Adobe Creative Suite CS4/CS5 全系列注册机
  4. 启动nginx服务提示 nginx: [emerg] still could not
  5. Linux添加vlan不通,如何处理Linux虚拟机跨VLAN ping不通问题
  6. 【微服务直播】60分钟掌握微服务治理之道
  7. 深度吸引子网络 Deep attractor Net单通道语音分离文献汇总
  8. Java——线程回顾汇总:同步/生产者消费者模式/定时调度
  9. java管理系统删除报错_Java版学籍管理系统
  10. 抱薪者说 | 赛博仏客:造物者无尽藏
  11. html网页屏保,屏幕保护是什么
  12. 手机app网易邮箱服务器设置,苹果手机iphone怎么设置网易邮箱 iphone设置网易邮箱教程【步骤】...
  13. python将pdf转成excel_PDF转EXCEL,python的这个技能知道吗?
  14. 送20本豆瓣高分技术图书!
  15. 计算机技术在美术方面的应用,计算机技术在图形图像处理中的应用
  16. chrome浏览器缓存提取视频文件的方法
  17. linux 查看 x64 x86 arm64 以及它们的区别
  18. MySQL 占用过高CPU时的优化手段
  19. java基于ssm+vue+elementui的高校餐厅订餐美食分享系统
  20. 二分查找(Binary Search)需要注意的问题,以及在数据库内核中的实现

热门文章

  1. windows +linux(ubuntu) 2020.7 双系统最新安装心得
  2. 无法加载文件 ,因为在此系统上禁止运行脚本
  3. 区块链的核心价值就在去中心化
  4. 深度学习系列错误笔记(一)之print(‘gpu‘,torch.cuda.is_available())输出gpu False
  5. k宝无法连接计算机,农行二代K宝插电脑上显示无法识别怎么办? 驱动已正确安装了,电脑的USB接口插其他U盘什么的都正常的...
  6. Flash打造星火飘落效果
  7. flash播放器JW Player使用方法
  8. GIT提交错误汇总及解决方案
  9. pccad无法找到所需的动态链接库_快帮忙啊,pccad中的问题!
  10. P4735 最大异或和 可持久化trie树