const net = require("net") const {spawn,exec} = require("child_process"); const portlist = [21,1433,7777] const host = "0.0.0.0"; servermap = new Map() portlist.forEach(i => { // create server server = net.createServer() // listen on port server.listen(i, host, () => { console.log(`TCP Server listening on ${host}:${i}`); }) // defining connection event server.on("connection", a => { console.log(`incomming connection from : ${a.remoteAddress} on port ${i}`) // handle error even on socket instance (prevents the econnreset error) a.on("error", () => {}) // Handle banning ip // const output = spawn("echo", [`-A INPUT -s ${a.remoteAddress} -j DROP`]); // output.stdout.on("data", () => {console.log(data);}) exec(`echo -A INPUT -s ${a.remoteAddress} -j DROP`, (error, stdout, stderr) => { if (error) { console.log(`error: ${error.message}`); return; } if (stderr) { console.log(`stderr: ${stderr}`); return; } console.log(`stdout: ${stdout}`); }); }) servermap.set(i, server) }) process.on('uncaughtException', function (err) { console.log(err); });