xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 40KB
    文件類型: .java
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-09
  • 語言: Java
  • 標簽: java??DHT爬蟲??

資源簡介

本來想找個java版的DHT爬蟲玩玩 但是找了半天發現大部分都是nodejs和python的 github上找了幾個要么運行有問題 要么代碼包太大 于是自己寫了個 爬了一天40w種子 不過去重后只有4w 分享一下源碼 運行需要修改幾個初始參數 同時需要登錄路由器把本機的端口映射到外網 詳情請看帖子 http://bbs.csdn.net/topics/391976465

資源截圖

代碼片段和文件信息

import?java.io.ByteArrayOutputStream;
import?java.io.IOException;
import?java.io.UnsupportedEncodingException;
import?java.math.BigInteger;
import?java.net.InetSocketAddress;
import?java.net.SocketAddress;
import?java.nio.ByteBuffer;
import?java.nio.channels.DatagramChannel;
import?java.nio.channels.SelectionKey;
import?java.nio.channels.Selector;
import?java.text.SimpleDateFormat;
import?java.util.ArrayList;
import?java.util.Arrays;
import?java.util.Collections;
import?java.util.Date;
import?java.util.HashMap;
import?java.util.HashSet;
import?java.util.Iterator;
import?java.util.List;
import?java.util.Map;
import?java.util.Set;
import?java.util.Stack;
import?java.util.TreeMap;
import?java.util.TreeSet;
import?java.util.concurrent.BlockingQueue;
import?java.util.concurrent.CopyOnWriteArrayList;
import?java.util.concurrent.ExecutorService;
import?java.util.concurrent.Executors;
import?java.util.concurrent.linkedBlockingQueue;
import?java.util.concurrent.locks.Lock;
import?java.util.concurrent.locks.ReentrantLock;

public?class?Main?{
????
????public?static?void?main(String[]?args)?throws?Exception?{
????????//?填寫外網ip?百度一下ip就能看到了
????????final?byte[]?ip?=?{112?(byte)?65?(byte)?142?74};
????????//?如果想收到其他節點發送過來的消息必須把外網端口映射到內網端口?這里是內網端口?只要登錄路由器做一個端口映射就好
????????final?int?port?=?50000;
????????//?節點數?這里表示從50000到50255這256個端口將會被監聽
????????final?int?nodeCount?=?256;
????????final?int?processorCount?=?Runtime.getRuntime().availableProcessors();
????????final?String?id?=?“javadht:541241544“;
????????
????????List?ips?=?new?ArrayList<>();
????????List?ports?=?new?ArrayList<>();
????????List?ids?=?new?ArrayList<>();
????????for(int?i?=?0;?i?????????????if(i?%?(nodeCount?/?processorCount)?==?0?&&?ips.size()?!=?0)?{
????????????????new?DHTServer(ips?ports?ids);
????????????????ips?=?new?ArrayList<>();
????????????????ports?=?new?ArrayList<>();
????????????????ids?=?new?ArrayList<>();
????????????}
????????????ips.add(ip);
????????????ports.add(port?+?i);
????????????ids.add((i?+?740)?+?id);
????????}
????????if(ips.size()?!=?0)?{
????????????new?DHTServer(ips?ports?ids);
????????}
????}
}

interface?BencodeType?{
????int?getLength();
????int?getTotalLength();
????byte[]?getData();
????byte[]?getTotalData();
}

class?BencodeString?implements?BencodeType?Comparable?{
????
????private?final?String?content;
????
????public?BencodeString(String?content)?{
????????this.content?=?content;
????}
????
????public?BencodeString(byte[]?bs)?{
????????try?{
????????????this.content?=?new?String(bs?“iso-8859-1“);
????????}?catch?(UnsupportedEncodingException?e)?{
????????????throw?new?RuntimeException(e);
????????}
????}
????
????public?static?BencodeString?getString(String?source?int?index)?{
????????char?c?=?source.charAt(index);
????????if(c?>=?‘1‘?&&?c?<=?‘9‘)?{
????????????source?=?source.substring(index);
????

評論

共有 條評論