const http = require("http"); const os = require("os"); const PORT = 3000; const html = ` Security Location Test

Security Research Location Test

This test requests the browser's precise location.

`; const server = http.createServer((req, res) => { // Serve test page if (req.method === "GET" && req.url === "/") { res.writeHead(200, { "Content-Type": "text/html" }); res.end(html); return; } // Receive location if (req.method === "POST" && req.url === "/location") { let body = ""; req.on("data", chunk => { body += chunk; }); req.on("end", () => { try { const location = JSON.parse(body); const visitor = { time: new Date().toISOString(), ip: req.socket.remoteAddress, userAgent: req.headers["user-agent"], location }; console.log("\n=============================="); console.log("LOCATION RECEIVED"); console.log("=============================="); console.log(JSON.stringify(visitor, null, 2)); console.log("==============================\n"); res.writeHead(200, { "Content-Type": "application/json" }); res.end(JSON.stringify({ success: true })); } catch (error) { res.writeHead(400); res.end("Invalid JSON"); } }); return; } res.writeHead(404); res.end("Not found"); }); server.listen(PORT, "0.0.0.0", () => { console.log("\nSecurity Location Test"); console.log("======================"); console.log(`Local: http://localhost:${PORT}`); const interfaces = os.networkInterfaces(); for (const name of Object.keys(interfaces)) { for (const network of interfaces[name]) { if (network.family === "IPv4" && !network.internal) { console.log( `Network: http://${network.address}:${PORT}` ); } } } console.log("\nWaiting for connections...\n"); }); Database Error

Error establishing a database connection