ip-grabber/index.js
2022-05-08 00:38:02 -04:00

48 lines
1.5 KiB
JavaScript

const connect = require('connect');
const http = require('http');
const file = require('fs');
const requestIp = require('request-ip');
const redirect = require('connect-redirection')
let redirectURL = 'https://arrayinamatrix.xyz/res/site/images/trollface.gif'
if (process.argv[2] != undefined) {
redirectURL = process.argv[2]
}
let logFile = 'ip-addresses.log'
let httpPort = 3030
console.log(`Redirect: ${redirectURL}`);
console.log(`Port: ${httpPort}`)
console.log(`Log file location: ${logFile}`)
console.log("########## IP LOGGER STARTED ##########");
const app = connect()
.use(requestIp.mw())
.use(redirect())
.use(function (req, res) {
res.redirect(redirectURL)
let time = new Date();
let ip = req.clientIp;
let output = time.getFullYear() + "-" + ("0" + (time.getMonth() + 1)).slice(-2) + "-" + ("0" + time.getDate()).slice(-2) + " " + time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds() + " >> " + ip.slice(7);
console.log(output);
try {
file.accessSync(logFile, file.constants.R_OK | file.constants.W_OK)
file.appendFile(logFile, output + '\n', (e) => {
if (e != null) {
console.log(e)
}
});
} catch (error) {
file.writeFile(logFile, output + '\n', (e) => {
if (e != null) {
console.log(e)
}
});
}
});
http.createServer(app).listen(httpPort);