java dht 爬虫_DHT爬虫(golang版-附源码)

前言

简介

DHT爬虫要做的事情,首先就是要加入到DHT网络中,这样就会源源不断收到其他节点发过来的请求,然后从中获取种子的hash值。

那么问题来了

1: 怎么加入到DHT网络中?

2: 怎么让其他节点给你发消息?

3: 哪些请求里面包含hash信息?

看过上面的文章,大家应该明白DHT网络中节点之间的通信只有下面4种请求

ping

find_node

get_peer

announce_peer

1:加入DHT网络

要加入网络要给下面的根地址发消息:

"router.utorrent.com:6881",

"router.bittorrent.com:6881",

"dht.transmissionbt.com:6881",

向这几个节点查找任意节点(发送find_node请求),然后他们会返回距离该节点最近的K个节点,那么我们再依次向K个节点查找任意节点,以此类推,就有更多的节点认识自己。

2: 加入网络后就会收到其他节点的信息,认识的节点越多收到的消息就越多,所以爬虫应该尽可能让更多的节点认识自己

3: 要获取的hash信息主要是来自announce_peer请求,这个请求同时还会携带ip和port信息,get_peer也可以得到一个hash信息,但是这个hash不能确定是否真实存在,如果我们只是想得到hash值然后通过其的软件下载,也可以把这个hash收集起来。

另外announce_peer请求中implied_port这个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值