|
|
@ -1,9 +1,12 @@
|
|
|
|
let express = require("express");
|
|
|
|
let express = require("express");
|
|
|
|
let ipaddr = require("ipaddr.js");
|
|
|
|
let ipaddr = require("ipaddr.js");
|
|
|
|
|
|
|
|
let moment = require("moment");
|
|
|
|
|
|
|
|
let conf = require("../libs/configuration");
|
|
|
|
let db = require("../libs/Database").instance();
|
|
|
|
let db = require("../libs/Database").instance();
|
|
|
|
let router = express.Router();
|
|
|
|
let router = express.Router();
|
|
|
|
|
|
|
|
|
|
|
|
const IP_TYPES = ["ipv4", "ipv6"];
|
|
|
|
const IP_TYPES = ["ipv4", "ipv6"];
|
|
|
|
|
|
|
|
const REGISTER_PASS = conf.registerPass;
|
|
|
|
|
|
|
|
|
|
|
|
function combineToList(a, b) {
|
|
|
|
function combineToList(a, b) {
|
|
|
|
return a + "\n" + b;
|
|
|
|
return a + "\n" + b;
|
|
|
@ -35,9 +38,9 @@ router.get("/:fqdn", (req, res) => {
|
|
|
|
if (!d) return res.status(404).send("Unknown FQDN");
|
|
|
|
if (!d) return res.status(404).send("Unknown FQDN");
|
|
|
|
res.send([
|
|
|
|
res.send([
|
|
|
|
d.ipv4 ? d.ipv4 : "0.0.0.0",
|
|
|
|
d.ipv4 ? d.ipv4 : "0.0.0.0",
|
|
|
|
d.ipv4LastPing,
|
|
|
|
moment(d.ipv4LastPing).toISOString(),
|
|
|
|
d.ipv6 ? d.ipv6 : "::",
|
|
|
|
d.ipv6 ? d.ipv6 : "::",
|
|
|
|
d.ipv6LastPing,
|
|
|
|
moment(d.ipv6LastPing).toISOString(),
|
|
|
|
].reduce((a, b) => a + "\n" + b));
|
|
|
|
].reduce((a, b) => a + "\n" + b));
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
@ -46,9 +49,22 @@ router.get("/:fqdn/:code", testIP, (req, res) => {
|
|
|
|
let addr = req.params.addr;
|
|
|
|
let addr = req.params.addr;
|
|
|
|
db.query("UPDATE addresses SET " + addr.kind() + " = ?, " + addr.kind() + "LastPing = CURRENT_TIMESTAMP WHERE fqdn = ? AND code = ?", [addr.toString(), req.params.fqdn, req.params.code], (e, d) => {
|
|
|
|
db.query("UPDATE addresses SET " + addr.kind() + " = ?, " + addr.kind() + "LastPing = CURRENT_TIMESTAMP WHERE fqdn = ? AND code = ?", [addr.toString(), req.params.fqdn, req.params.code], (e, d) => {
|
|
|
|
if (e) return res.status(400).send("Error");
|
|
|
|
if (e) return res.status(400).send("Error");
|
|
|
|
if (d.affectedRows <= 0) return res.status(400).send("Invalid token");
|
|
|
|
if (d.affectedRows <= 0) return res.status(403).send("Invalid token");
|
|
|
|
res.send(addr.toString());
|
|
|
|
res.send(addr.toString());
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
router.get("/:fqdn/:code/:pass", (req, res) => {
|
|
|
|
|
|
|
|
const pass = req.params.pass;
|
|
|
|
|
|
|
|
const fqdn = req.params.fqdn;
|
|
|
|
|
|
|
|
const code = req.params.code;
|
|
|
|
|
|
|
|
if (REGISTER_PASS === "" || pass !== REGISTER_PASS) return res.status(403).send("Invalid token");
|
|
|
|
|
|
|
|
db.query("INSERT INTO addresses SET fqdn = ?, code = ? ON DUPLICATE KEY UPDATE code = ?", [fqdn, code, code], (e, d) => {
|
|
|
|
|
|
|
|
if (e) return res.status(400).send("Error");
|
|
|
|
|
|
|
|
if (d.insertId <= 0) return res.send("Already registered");
|
|
|
|
|
|
|
|
if (d.affectedRows >= 2) return res.send("Successful changed code");
|
|
|
|
|
|
|
|
res.send("Successful registered");
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = router;
|
|
|
|
module.exports = router;
|
|
|
|