diff --git a/routes/index.js b/routes/index.js index c930692..56bf74e 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,7 +1,7 @@ const express = require('express') const router = express.Router() -const { fromTor, fromVpn } = require('./utils') +const { fromTor, fromVpn, checkCountry } = require('./utils') // magic const render = template => (req, res) => res.render(template) @@ -19,9 +19,9 @@ router.get('/metadata', render('metadata')) router.get('/mail', render('mail')) // level V (vpn -> read mail) -router.get('/vpn', fromTor, fromVpn, (req, res) => { - if (!req.isTor && req.isVpn) render('vpnok') - else render('vpnnook') +router.get('/vpn', fromTor, fromVpn, checkCountry, (req, res) => { + if (!req.fromTor && req.fromVpn) render('vpnok', req.geoinfo ) + else render('vpnnook', req.geoinfo ) }) module.exports = router diff --git a/routes/utils.js b/routes/utils.js index 85ea596..386c8ff 100644 --- a/routes/utils.js +++ b/routes/utils.js @@ -24,16 +24,26 @@ const fromVpn = async (req, res, next) => { const sourceIp = req.headers['x-forwarded-for'] || req.connection.remoteAddress const baseUrl = 'https://check.getipintel.net/check.php?ip=' const url = `${baseUrl}${sourceIp}&contact=anna@fugadalcontrollo.org` - console.log(url); request(url, (err, res, body) => { if (!err && res.statusCode === 200) { - console.log(body) + req.fromVpn = parseFloat(body)>0.5 } else { - console.log(err, body) + req.fromVpn = false } + next() }) } +const checkCountry = (req, res, next) => { + request(`http://ip-api.com/json/${sourceIp}`, (err, res, body) => { + if (!err && res.statusCode === 200) { + console.log(body); + req.geoinfo = JSON.parse(body); + console.log(res.geoinfo); + } + next(); + }) +} -module.exports = { fromTor, fromVpn } \ No newline at end of file +module.exports = { fromTor, fromVpn, checkCountry } \ No newline at end of file diff --git a/views/vpnnook.pug b/views/vpnnook.pug new file mode 100644 index 0000000..7bf9984 --- /dev/null +++ b/views/vpnnook.pug @@ -0,0 +1,7 @@ +extends layout + +block content + p. + E no, arrivi da una {{country}} / {{city}} + + diff --git a/views/vpnok.pug b/views/vpnok.pug new file mode 100644 index 0000000..470a8b6 --- /dev/null +++ b/views/vpnok.pug @@ -0,0 +1,7 @@ +extends layout + +block content + p. + Evviva, arrivi da una VPN {{country}} / {{city}} + +