研究过bt的朋友请近来看一下

ppzine 2006-07-24 03:48:42
最近想自己实现一下bt ,在与tracker通信这块有一点问题,请大家帮忙看看.

在解析torrent文件后,通过announce获取trackurl,然后发起get请求,有的返回没有问题,但是有的track返回的是302,这样包里有一个location url,我在向这个url发起请求时总是返回404这个错误。
...全文
500 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanghuajun_xm 2006-08-11
  • 打赏
  • 举报
回复
bt开发高手请与我联系,MSN:reaking1@hotmail.com
hlidea 2006-07-26
  • 打赏
  • 举报
回复
你的host地址是从torrent文件获取的吗,确保你发送的host地址正确(不要写死一个地址).
btw,bitcomet能否获取此torrent的peers,如果它也不行,那明显是tracker服务器那边有问题了.
只有info_hash是错的才会返回此信息,不信你可以自己随便构造一个info_hash投出去试试
ppzine 2006-07-26
  • 打赏
  • 举报
回复
这个并不是根据User-Agent: BitTorrent/3.4.2来判断的,HTTP的那些请求报头什么Host,User-Agent,Accept都是无关紧要的,最重要的就是请求行,只要这行是对的基本上就能获取到peer信息;此处收到这个错误,说明你的info_hash字段是错的,tracker上并不存在一个对应你这个info_hash的种子,很可能你做escaped转换出了问题
====================================================================================
我的info_hash是没有问题的,这个我通过对相同的bitcommit抓包看过了,我info_hash与bt的一样,即使我把抓到的bt包发过去,也会返回这个错误
hlidea 2006-07-26
  • 打赏
  • 举报
回复
那我也无能为力了,如果你抓bitcomet包发过去,他能获取,而你不行,只能解释为人品问题了...(没恶意的,哈哈)
ppzine 2006-07-26
  • 打赏
  • 举报
回复
host几从文件获取的,没有写死.bitcommit能获取
zclsq 2006-07-25
  • 打赏
  • 举报
回复
恭喜,接分
ppzine 2006-07-25
  • 打赏
  • 举报
回复
对,我就是用这个站点试的,但是总是404,要是请求的参数不对,应该是报参数的错误吧,但现在为什么报404呢
hlidea 2006-07-25
  • 打赏
  • 举报
回复
compact是紧缩模式,官方文档都是这么描述的,反正我compact=1就返回乱码,因为是二进制的,compact=0才返回列表,如果你不管怎么设都返回列表的话,说明有些tracker可能不支持紧缩模式
------------------------------------------
返回这个错误,你是怎么处理的
Torrent is not authorized for use on this tracker.e
,看样是这个客户端不被认可,但是我己经加了User-Agent: BitTorrent/3.4.2
------------------------------------------
这个并不是根据User-Agent: BitTorrent/3.4.2来判断的,HTTP的那些请求报头什么Host,User-Agent,Accept都是无关紧要的,最重要的就是请求行,只要这行是对的基本上就能获取到peer信息;此处收到这个错误,说明你的info_hash字段是错的,tracker上并不存在一个对应你这个info_hash的种子,很可能你做escaped转换出了问题


ppzine 2006-07-25
  • 打赏
  • 举报
回复
我己经向那个地址发了请求,我现在有点怀疑tracker那边故意断开了,因为刚才还能访问的,现在也出404了.
ppzine 2006-07-25
  • 打赏
  • 举报
回复
我刚才换torrent文件试了一下,发现是否返回乱码与compact值无关,在compact为1或0时我都试了,都能成功返回字典列表,
hlidea 2006-07-25
  • 打赏
  • 举报
回复
这个是它返回的值呀,你反正向http://222.208.183.16:8088发送这个GET即可:
GET /announce?info_hash=1%11%3F%CC%D9%E0%C7%91%D2%B2e%19d%9B%08%2Ba%3F%E6%E2&peer_id==%2DBC0062%2D%16%18%83%7F%CC%DF%C3%DC%A453%A453C3&port=6881&uploaded=0&downloaded=0&left=0&compact=0&event=started&numwant=50

host改不改都无所为,你新发GET确保发送的的IP和端口正确,IP:222.208.183.16,port:8088,还不行那我也没办法了
ppzine 2006-07-25
  • 打赏
  • 举报
回复
返回这个错误,你是怎么处理的
Torrent is not authorized for use on this tracker.e
,看样是这个客户端不被认可,但是我己经加了User-Agent: BitTorrent/3.4.2
ppzine 2006-07-25
  • 打赏
  • 举报
回复
HTTP/1.0 302 Found
Content-Length: 0
Location: http://222.208.183.16:8088/announce?info_hash=1%11%3F%CC%D9%E0%C7%91%D2%B2e%19d%9B%08%2Ba%3F%E6%E2&peer_id==%2DBC0062%2D%16%18%83%7F%CC%DF%C3%DC%A453%C3&port=6881&uploaded=0&downloaded=0&left=0&compact=0&event=started&numwant=50
Pragma: no-cache

hlidea 2006-07-25
  • 打赏
  • 举报
回复
这个是对的嘛,你要贴一个重定向的GET给我看看.
你把compact=1改成compact=0就会返回列表
ppzine 2006-07-25
  • 打赏
  • 举报
回复
返回:
HTTP/1.0 200 OK

d10:done peersi13e8:intervali1800e9:num peersi78e5:peers300:|搷?彳芌86=???&O;N轈駢Nn轋?3j訋?a贘陎8抟嗨AA
?鋦X肸"蒿玗[]|&mN 葩薲6-=闭T]轣m`\y<U?接塰EK?悗?^轅頝A捾?rH;)%騴??Ai蛰??递??柺???欏抙戕^A!$
U淢H抟赼&z<验?<籇
ppzine 2006-07-25
  • 打赏
  • 举报
回复
GET /announce?info_hash=1%11%3F%CC%D9%E0%C7%91%D2%B2e%19d%9B%08%2Ba%3F%E6%E2&peer_id=%2DBC0062%2D%16%18%83%7F%CC%DF%C3%DC%A453%C3&port=13506&uploaded=0&downloaded=0&left=0&compact=1&event=started&numwant=50 HTTP/1.1
Host:222.208.183.16
User-Agent: BitTorrent/3.4.2
Accept:*/*
Connection:close
hlidea 2006-07-25
  • 打赏
  • 举报
回复
我上面贴的这个是对的,你可以参考一下,是btchina最新的加勒比海盗的种子生成的GET请求
hlidea 2006-07-25
  • 打赏
  • 举报
回复
你把GET请求贴出来我看看,比如
GET /announce?info_hash=%94o%FF%F1R%04%BFR%84%D7%DF%22%A2N%B8G%18%C8%E0%3D&peer_
id=%2DCT0060%2D%BDI?CF%C0%1F%1F%B7V%B4%9A%D9&port=2706&uploaded=0&downloaded=0&l
eft=1472348430&event=started&compact=1 HTTP/1.0
后面的那个问题是取决于你是否采用紧缩模式,即compact字段,如果采用紧缩模式将会以32+16位的方式返回ip地址和端口号,你设成不是紧缩模式就会返回列表
ppzine 2006-07-25
  • 打赏
  • 举报
回复
现在还有一个新的问题,我发能得track返回的结果了,但是得到的结果中peers部份是乱码.按协议来说这应该是一个字典列表,ip,peer id,port才对,这是为什么呢
ppzine 2006-07-25
  • 打赏
  • 举报
回复
这块没有错误,我试过好多次,断点也查看过了,在得到302时,我是把原来的http头得改host参数,后在发向新的host,参数值与第一次发送的一样.
加载更多回复(4)

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧