当前位置: 首页 > news >正文

成功的营销网站的例子为企业策划一次网络营销活动

成功的营销网站的例子,为企业策划一次网络营销活动,建e网室内设计网现代轻奢,武汉 网站建设bt种子的hansh值计算,最近忽然对bt种子感兴趣了(原因勿问) 1. bt种子(概念) bt 是一个分布式文件分发协议,每个文件下载者在下载的同时向其它下载者不断的上传已经下载的数据,这样保证下载越快…


bt种子的hansh值计算,最近忽然对bt种子感兴趣了(原因勿问)


1. bt种子(概念)

bt 是一个分布式文件分发协议,每个文件下载者在下载的同时向其它下载者不断的上传已经下载的数据,这样保证下载越快,上传越快,从而实现告诉下载


2. bt 如何实现下载同时上传文件

这个需要从文件本身说起,bt文件包含了两部分信息,一部分是Tracker信息,一部分是文件信息,tracker信息主要是记录下载过程中需要的tracker服务器地址和针对tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果会以B编码规则进行编码(英文不太好,这部分信息来自百度百科)。 文件信息里,会把需要下载的文件进行分块,每个块的索引信息会写到torrent文件中,在这里上传一个迅雷的任务详细页面



可以看到具体的任务分块信息,每个下载者都可以上传自己已经下载的分块数据,如何获取其它下载者已经下载的分块信息数据呢,一种方式是通过tracker服务器来实现的,可以记录每个下载者,这也就是我们经常看见局域网的bt分享网站会有对上传下载的流量统计功能,每个人下载多少,上传多少,从而确定每个人的贡献值。

这也就是海盗湾之前被瑞典起诉的原因,tracker服务器提供了给每个下载者下载盗版的可能性和机会,当然现在对于众多的magnet协议,采用了dht技术,这样对于tracker服务器的存在就显得没有必要了,这是后话,慢慢在描述!


3.  bt的hash值计算(特征值计算)

由上可知,对于每一个bt种子,都有包含每个分块的文件信息,这样可以保证即使在tracker服务器有变化的情况下,bt种子的唯一性(这里,插一句,我曾经simple的以为,可以对bt种子取md5值就可以确定其唯一性,too naive啊),那如何计算这个hash值呢,这需要对bt文件组成的一个深入了解,这方面以后相当多的文章,附上一篇:

http://www.cnblogs.com/DxSoft/archive/2012/02/11/2346314.html

根据这篇文章的描述,谢了两段测试程序:


方法1:直接根据info后的字段信息即4:info后的字段,我们可以截取bt种子中的一段


例如:

d8:announce27:http://tk3.5qzone.net:8080/13:announce-listll27:http://tk3.5qzone.net:8080/el36:http://btfans.3322.org:8000/announceel36:http://btfans.3322.org:8080/announceel36:http://btfans.3322.org:6969/announceel42:http://denis.stalker.h3q.com:6969/announceel40:http://torrent-download.to:5869/announceel45:http://tracker.openbittorrent.com:80/announceel39:http://tracker.publicbt.com:80/announceel40:http://tracker.bittorrent.am:80/announceel30:http://tracker.prq.to/announceel34:http://tracker.prq.to/announce.phpel43:http://tracker.torrentbox.com:2710/announceel34:http://tpb.tracker.prq.to/announceel30:http://tr.wjl.cn:8080/announceel37:http://219.152.120.234:6969/announce el34:http://mdbt.3322.org:6969/announceee7:comment19:YYeTs人人影视资源站13:comment.utf-826:YYeTs浜轰汉褰辫璧勬簮绔?0:created by13:BitComet/0.7013:creation datei1261532244e8:encoding3:GBK4:infod5:filesld6:lengthi943e4:path

第一个字节d代表dict意思,字典组成,4:info 代表着info字段长度为4意思,这样我们可以写下解析hash的代码值:

#!python
import hashlib
def sha1sum(src):if not len(src):return ""m = hashlib.sha1(src)return m.hexdigest()#filename is the torrent file name
with open(filename) as f:torrent_data = f.read()if -1 != torrent_data.find("nodes"):info_data = 
torrent_data[torrent_data.find("info")+4:torrent_data.find("nodes")-2]else:info_data = 
torrent_data[torrent_data.find("info")+4:len(torrent_data) - 1]sha1_data = sha1sum(info_data)print "the hash data of torrent is: ", sha1_data.upper()

在实际测试时,发现,在torrent中,有两种情况,一种是包含nodes字段信息的;一种是不包含nodes信息的torrent种子,需要分别处理,但是这种处理的方式较为繁琐,也不清楚后续到底有多少的坑在里面,需要应对不同情况,于是去google了一下,在stackoverflow里面,提到一个库,即bencode库,这就是我们的第二种方案


方案2:

通过bencode库实现对hash值得计算(bencode库后续详细介绍和解读),代码如下(需要安装bencode库),地址:

https://pypi.python.org/pypi/BitTorrent-bencode/5.0.8.1

#!/usr/bin/pythonimport sys, os, hashlib, StringIO
import bencodedef main():# Open torrent filetorrent_file = open(sys.argv[1], "rb")metainfo = bencode.bdecode(torrent_file.read())info = metainfo['info']print hashlib.sha1(bencode.bencode(info)).hexdigest()    if __name__ == "__main__":main()





http://www.shuangfujiaoyu.com/news/61151.html

相关文章:

  • 什么类型的网站容易被百度抓取站长工具友链查询
  • 泰州建站价格长沙sem培训
  • 内网网站建设的必要性谷歌app官方下载
  • 能玩游戏的网站海外广告联盟平台推广
  • 兰州网站推广建设怎样进行关键词推广
  • 定制网站建设公司价格怎么自己建网站
  • 艺术名画网站怎么建设谷歌优化
  • 门户网站制作流程产品推广找哪家公司
  • 独特的网站网站建设公司排行榜
  • 品牌网站设计制作公司地址营销策划方案内容
  • 网站核心推广思路百度竞价代运营公司
  • 纪委建设网站的意义优化网站建设seo
  • 建设银行网站个人客户免费seo网站推广在线观看
  • 网络营销策划方案的编写方法及内容项链seo关键词
  • ui设计哪里培训机构seo岗位工资
  • 邢台做移动网站价格百度搜索排名查询
  • 现在建网站做淘宝联盟推广能赚钱吗如何做宣传推广营销
  • asp.net网站模板免费下载企业宣传片
  • wordpress搬到谷歌服务器宁波seo公司哪家好
  • 把网站从空间删除软件编程培训学校排名
  • 企业文档管理wordpress郑州seo外包顾问
  • 网站免费打包网站模板免费
  • 关于网站开发的步骤企业网站seo优化
  • 游戏科技外挂地铁网站优化与seo
  • 网站通栏图片代码搜索网站排名优化
  • 网站开发合同范本大全熊猫关键词挖掘工具
  • wgcz公司网站网络推广是干嘛的
  • 苏州做网站公司有哪些网站收录查询平台
  • 做网站预付款是多少seo搜索引擎优化业务
  • 织梦能做视频网站吗网站制作报价表