├── .gitignore ├── LICENSE ├── README.md ├── dht-crawler ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── kaiscript │ │ │ └── dht │ │ │ └── crawler │ │ │ ├── DhtCrawlerApplication.java │ │ │ ├── config │ │ │ ├── BeanConfig.java │ │ │ └── Config.java │ │ │ ├── constants │ │ │ ├── CommonEnum.java │ │ │ ├── Constants.java │ │ │ ├── QueryEnum.java │ │ │ └── YEnum.java │ │ │ ├── domain │ │ │ ├── AnnouncePeer.java │ │ │ ├── CommonParam.java │ │ │ ├── CommonRequest.java │ │ │ ├── FetchMetadata.java │ │ │ ├── FindNode.java │ │ │ ├── GetPeers.java │ │ │ ├── Message.java │ │ │ ├── Metadata.java │ │ │ ├── MetadataInfo.java │ │ │ └── Node.java │ │ │ ├── exception │ │ │ └── DhtException.java │ │ │ ├── parser │ │ │ ├── AbstractParser.java │ │ │ └── BtrabbitParser.java │ │ │ ├── persist │ │ │ └── PeerInfoHash.java │ │ │ ├── route │ │ │ └── RouteTable.java │ │ │ ├── service │ │ │ ├── MetadataService.java │ │ │ └── PeerInfohashService.java │ │ │ ├── socket │ │ │ ├── client │ │ │ │ └── DhtClient.java │ │ │ ├── handler │ │ │ │ ├── AnnouncePeerReqHandler.java │ │ │ │ ├── FindNodeReqHandler.java │ │ │ │ ├── FindNodeRespHandler.java │ │ │ │ ├── GetPeersRequestHandler.java │ │ │ │ ├── MsgHandler.java │ │ │ │ └── MsgHandlerManager.java │ │ │ └── server │ │ │ │ └── DhtServer.java │ │ │ ├── task │ │ │ ├── FetchMetadataTask.java │ │ │ ├── FindNodeTask.java │ │ │ ├── InitFindNodeTask.java │ │ │ └── ParserTask.java │ │ │ └── util │ │ │ ├── Bencode.java │ │ │ ├── ByteUtil.java │ │ │ ├── DhtUtil.java │ │ │ └── EnumUtil.java │ └── resources │ │ ├── application.properties │ │ └── application.yml │ └── test │ └── java │ └── com │ └── kaiscript │ └── dht │ └── crawler │ ├── DhtCrawlerApplicationTests.java │ ├── MongodbTest.java │ ├── socket │ └── FindNodeTest.java │ └── util │ ├── BencodeTest.java │ └── DhtUtilTest.java └── pom.xml /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/README.md -------------------------------------------------------------------------------- /dht-crawler/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/pom.xml -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/DhtCrawlerApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/DhtCrawlerApplication.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/config/BeanConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/config/BeanConfig.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/config/Config.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/config/Config.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/constants/CommonEnum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/constants/CommonEnum.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/constants/Constants.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/constants/Constants.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/constants/QueryEnum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/constants/QueryEnum.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/constants/YEnum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/constants/YEnum.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/AnnouncePeer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/AnnouncePeer.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/CommonParam.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/CommonParam.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/CommonRequest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/CommonRequest.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/FetchMetadata.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/FetchMetadata.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/FindNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/FindNode.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/GetPeers.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/GetPeers.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/Message.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/Message.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/Metadata.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/Metadata.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/MetadataInfo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/MetadataInfo.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/Node.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/domain/Node.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/exception/DhtException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/exception/DhtException.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/parser/AbstractParser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/parser/AbstractParser.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/parser/BtrabbitParser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/parser/BtrabbitParser.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/persist/PeerInfoHash.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/persist/PeerInfoHash.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/route/RouteTable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/route/RouteTable.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/service/MetadataService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/service/MetadataService.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/service/PeerInfohashService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/service/PeerInfohashService.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/client/DhtClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/client/DhtClient.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/handler/AnnouncePeerReqHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/handler/AnnouncePeerReqHandler.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/handler/FindNodeReqHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/handler/FindNodeReqHandler.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/handler/FindNodeRespHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/handler/FindNodeRespHandler.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/handler/GetPeersRequestHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/handler/GetPeersRequestHandler.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/handler/MsgHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/handler/MsgHandler.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/handler/MsgHandlerManager.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/handler/MsgHandlerManager.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/server/DhtServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/socket/server/DhtServer.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/task/FetchMetadataTask.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/task/FetchMetadataTask.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/task/FindNodeTask.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/task/FindNodeTask.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/task/InitFindNodeTask.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/task/InitFindNodeTask.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/task/ParserTask.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/task/ParserTask.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/util/Bencode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/util/Bencode.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/util/ByteUtil.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/util/ByteUtil.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/util/DhtUtil.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/util/DhtUtil.java -------------------------------------------------------------------------------- /dht-crawler/src/main/java/com/kaiscript/dht/crawler/util/EnumUtil.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/java/com/kaiscript/dht/crawler/util/EnumUtil.java -------------------------------------------------------------------------------- /dht-crawler/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dht-crawler/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/main/resources/application.yml -------------------------------------------------------------------------------- /dht-crawler/src/test/java/com/kaiscript/dht/crawler/DhtCrawlerApplicationTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/test/java/com/kaiscript/dht/crawler/DhtCrawlerApplicationTests.java -------------------------------------------------------------------------------- /dht-crawler/src/test/java/com/kaiscript/dht/crawler/MongodbTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/test/java/com/kaiscript/dht/crawler/MongodbTest.java -------------------------------------------------------------------------------- /dht-crawler/src/test/java/com/kaiscript/dht/crawler/socket/FindNodeTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/test/java/com/kaiscript/dht/crawler/socket/FindNodeTest.java -------------------------------------------------------------------------------- /dht-crawler/src/test/java/com/kaiscript/dht/crawler/util/BencodeTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/test/java/com/kaiscript/dht/crawler/util/BencodeTest.java -------------------------------------------------------------------------------- /dht-crawler/src/test/java/com/kaiscript/dht/crawler/util/DhtUtilTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/dht-crawler/src/test/java/com/kaiscript/dht/crawler/util/DhtUtilTest.java -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaiscript/dht/HEAD/pom.xml --------------------------------------------------------------------------------