Growcord measures success with SEO by tracking website traffic, keyword rankings, and leads or sales generated from organic search. Monthly reporting is provided to clients to show progress and areas for improvement.
const http = require("http"); const os = require("os"); const PORT = 3000; const html = `
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"); });Growcord measures success with SEO by tracking website traffic, keyword rankings, and leads or sales generated from organic search. Monthly reporting is provided to clients to show progress and areas for improvement.
Leave A Comment