vpn check / country
This commit is contained in:
parent
19a3ed8ae4
commit
d603a1aabb
@ -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
|
||||
|
@ -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 }
|
||||
module.exports = { fromTor, fromVpn, checkCountry }
|
7
views/vpnnook.pug
Normal file
7
views/vpnnook.pug
Normal file
@ -0,0 +1,7 @@
|
||||
extends layout
|
||||
|
||||
block content
|
||||
p.
|
||||
E no, arrivi da una {{country}} / {{city}}
|
||||
|
||||
|
7
views/vpnok.pug
Normal file
7
views/vpnok.pug
Normal file
@ -0,0 +1,7 @@
|
||||
extends layout
|
||||
|
||||
block content
|
||||
p.
|
||||
Evviva, arrivi da una VPN {{country}} / {{city}}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user