我正试图使用PHP为播种机和水蛭抓取一个洪流跟踪器。这是torcahche返回的散列值:7026AB638744F2BD2444033A8730DA146E15A886,以下跟踪器随流而来:
udp://tracker.openbittorrent.com:80/announce
udp://tracker.publicbt.com:80/announce
udp://tracker.ccc.de:80/announce以下是我试图获取所需信息的方法:
$orig="7026AB638744F2BD2444033A8730DA146E15A886";
$infoHash=$orig;
$nfo='udp://tracker.openbittorrent.com:80/scrape?hash_id='.$infoHash;
echo '<br>'.$nfo;
$gitsl=$this->input->get($nfo);
print_r($gitsl);
$infoHash=pack('H',$orig);
$nfo='udp://tracker.openbittorrent.com:80/scrape?hash_id='.$infoHash;
echo '<br>'.$nfo;
$gitsl=$this->input->get($nfo);
print_r($gitsl);
$infoHash=hex2bin($orig);
$nfo='udp://tracker.openbittorrent.com:80/scrape?hash_id='.$infoHash;
echo '<br>'.$nfo;
$gitsl=$this->input->get($nfo);
print_r($gitsl);
$infoHash='%70%26%AB%63%87%44%F2%BD%24%44%03%3A%87%30%DA%14%6E%15%A8%86% ';
$nfo='udp://tracker.openbittorrent.com:80/scrape?hash_id='.$infoHash;
echo '<br>'.$nfo;
$gitsl=$this->input->get($nfo);
print_r($gitsl);因此,一事无成,出现了以下问题:
我也尝试了多个网站,允许您手动输入散列信息的刮刮,所有的不成功。
希望有人能帮忙干杯。
发布于 2015-05-08 17:20:23
重复我对这个问题的回答:UDP跟踪器抓取1脚本工作,其他不工作
问题是,您正在向UDP跟踪器发送一个http-scrape。
UDP-跟踪器使用一个完全不同的协议:BEP15 - UDP跟踪器BitTorrent协议。
发布于 2015-05-08 16:41:58
首先,你不能对这样的GET请求。这就是如何读取输入值的方法。
其次,您正在尝试通过UDP执行请求。因此,您不能只是GET它,因为浏览器,或其他什么,将执行一个HTTP。
如本网站评论中所述
UDP的问题是,在TCP的情况下,您有一个隧道,其中所有的数据都是双向的,但是如果是UDP,则发送UDP数据包,并且必须打开端口来侦听答案(如果它会返回的话)。如果你得到一些数据,数据包可以以不同的顺序返回--你也必须处理这个问题。
这就是为什么普通的GET或file_get_contents()对你没有多大好处的原因。
您可以使用登记册()实现UDP请求的包装器。
此外,您应该使用$infoHash = urlencode(pack("H*", $orig))来获取给跟踪器所需的字符串。
https://stackoverflow.com/questions/30128415
复制相似问题