diff --git a/ip.js b/ip.js new file mode 100644 index 0000000..2d9a50b --- /dev/null +++ b/ip.js @@ -0,0 +1,20 @@ +var DHT = require('bittorrent-dht') +var magnet = require('magnet-uri') + +var uri = 'magnet:?xt=urn:btih:4a7b842632ca42cdd3c8d54017a8da756839b84d&dn=D0112-Chacha.Choudhary.Sabu.Kaale.Tapu.Mein.pdf&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com' +var parsed = magnet(uri) + +console.log(parsed.infoHash) // 'e3811b9539cacff680e418124272177c47477157' + +var dht = new DHT() + +dht.listen(20000, function () { + console.log('now listening') +}) + +dht.on('peer', function (peer, infoHash, from) { + console.log('found potential peer ' + peer.host + ':' + peer.port + ' through ' + from.address + ':' + from.port) +}) + +// find peers for the given torrent info hash +dht.lookup(parsed.infoHash) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 48d631e..6be0011 100644 --- a/package-lock.json +++ b/package-lock.json @@ -395,15 +395,15 @@ "integrity": "sha512-4xM4DYejOHQ/qWBfeqBXNA4mJ12PwcOibFYnH1kYh5U9BHciCqEJBqGNVnMJXUhm8mflujNRLSv7IiVQxovgjw==" }, "bittorrent-dht": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-8.4.0.tgz", - "integrity": "sha512-FRe/+MYBePev7Yb+BXSclkVuDxb/w+gUbao6nVHYQRaKO7aXE+ARRlL3phqm6Rdhw5CRVoLMbLd49nxmCuUhUQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-9.0.0.tgz", + "integrity": "sha512-X5ax4G/PLtEPfqOUjqDZ2nmPENndWRMK4sT2jcQ4sXor904zhR40r4KqTyTvWYAljh5/hPPqM9DCUUtqWzRXoQ==", "requires": { "bencode": "^2.0.0", "buffer-equals": "^1.0.3", "debug": "^3.1.0", "inherits": "^2.0.1", - "k-bucket": "^4.0.0", + "k-bucket": "^5.0.0", "k-rpc": "^5.0.0", "last-one-wins": "^1.0.4", "lru": "^3.1.0", @@ -3466,11 +3466,10 @@ "integrity": "sha1-9DG0t/By3FAKXxDOf07HGTDnATQ=" }, "k-bucket": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-4.0.1.tgz", - "integrity": "sha512-YvDpmY3waI999h1zZoW1rJ04fZrgZ+5PAlVmvwDHT6YO/Q1AOhdel07xsKy9eAvJjQ9xZV1wz3rXKqEfaWvlcQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.0.0.tgz", + "integrity": "sha512-r/q+wV/Kde62/tk+rqyttEJn6h0jR7x+incdMVSYTqK73zVxVrzJa70kJL49cIKen8XjIgUZKSvk8ktnrQbK4w==", "requires": { - "inherits": "^2.0.1", "randombytes": "^2.0.3" } }, @@ -3484,6 +3483,17 @@ "k-rpc-socket": "^1.7.2", "randombytes": "^2.0.5", "safe-buffer": "^5.1.1" + }, + "dependencies": { + "k-bucket": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-4.0.1.tgz", + "integrity": "sha512-YvDpmY3waI999h1zZoW1rJ04fZrgZ+5PAlVmvwDHT6YO/Q1AOhdel07xsKy9eAvJjQ9xZV1wz3rXKqEfaWvlcQ==", + "requires": { + "inherits": "^2.0.1", + "randombytes": "^2.0.3" + } + } } }, "k-rpc-socket": { @@ -9006,6 +9016,36 @@ "debug": "^3.1.0", "run-parallel": "^1.1.2", "xtend": "^4.0.1" + }, + "dependencies": { + "bittorrent-dht": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-8.4.0.tgz", + "integrity": "sha512-FRe/+MYBePev7Yb+BXSclkVuDxb/w+gUbao6nVHYQRaKO7aXE+ARRlL3phqm6Rdhw5CRVoLMbLd49nxmCuUhUQ==", + "requires": { + "bencode": "^2.0.0", + "buffer-equals": "^1.0.3", + "debug": "^3.1.0", + "inherits": "^2.0.1", + "k-bucket": "^4.0.0", + "k-rpc": "^5.0.0", + "last-one-wins": "^1.0.4", + "lru": "^3.1.0", + "randombytes": "^2.0.5", + "record-cache": "^1.0.2", + "safe-buffer": "^5.0.1", + "simple-sha1": "^2.1.0" + } + }, + "k-bucket": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-4.0.1.tgz", + "integrity": "sha512-YvDpmY3waI999h1zZoW1rJ04fZrgZ+5PAlVmvwDHT6YO/Q1AOhdel07xsKy9eAvJjQ9xZV1wz3rXKqEfaWvlcQ==", + "requires": { + "inherits": "^2.0.1", + "randombytes": "^2.0.3" + } + } } }, "torrent-piece": { @@ -9523,6 +9563,36 @@ "ut_pex": "^1.1.1", "xtend": "^4.0.1", "zero-fill": "^2.2.3" + }, + "dependencies": { + "bittorrent-dht": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-8.4.0.tgz", + "integrity": "sha512-FRe/+MYBePev7Yb+BXSclkVuDxb/w+gUbao6nVHYQRaKO7aXE+ARRlL3phqm6Rdhw5CRVoLMbLd49nxmCuUhUQ==", + "requires": { + "bencode": "^2.0.0", + "buffer-equals": "^1.0.3", + "debug": "^3.1.0", + "inherits": "^2.0.1", + "k-bucket": "^4.0.0", + "k-rpc": "^5.0.0", + "last-one-wins": "^1.0.4", + "lru": "^3.1.0", + "randombytes": "^2.0.5", + "record-cache": "^1.0.2", + "safe-buffer": "^5.0.1", + "simple-sha1": "^2.1.0" + } + }, + "k-bucket": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-4.0.1.tgz", + "integrity": "sha512-YvDpmY3waI999h1zZoW1rJ04fZrgZ+5PAlVmvwDHT6YO/Q1AOhdel07xsKy9eAvJjQ9xZV1wz3rXKqEfaWvlcQ==", + "requires": { + "inherits": "^2.0.1", + "randombytes": "^2.0.3" + } + } } }, "webtorrent-cli": { diff --git a/package.json b/package.json index ab2a9c1..12029dd 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "main": "index.js", "dependencies": { "bitcoin-core": "^2.0.0", + "bittorrent-dht": "^9.0.0", "bittorrent-tracker": "^9.10.1", "body-parser": "^1.18.3", "bootstrap": "^4.1.3", diff --git a/seed.js b/seed.js deleted file mode 100644 index cf96547..0000000 --- a/seed.js +++ /dev/null @@ -1,11 +0,0 @@ -var dragDrop = require('drag-drop') -var WebTorrent = require('webtorrent') - -var client = new WebTorrent() - -// When user drops files on the browser, create a new torrent and start seeding it! -dragDrop('body', function (files) { - client.seed(files, function (torrent) { - console.log('Client is seeding:', torrent.infoHash) - }) -}) \ No newline at end of file