1
0
Fork 0
mirror of https://github.com/Ylianst/MeshCentral.git synced 2025-03-09 15:40:18 +00:00

Added mesh agent IP address geo-location.

This commit is contained in:
Ylian Saint-Hilaire 2019-01-31 15:00:51 -08:00
parent 1bbb37b1ea
commit e6ebca7820
6 changed files with 20 additions and 7 deletions

View file

@ -1235,6 +1235,7 @@
var node = getNodeFromId(message.nodeid);
if (node != null) {
node.lastconnect = message.time;
node.lastaddr = message.addr;
if ((currentNode._id == node._id) && (Q('MainComputerState').innerHTML == '')) {
QH('MainComputerState', '<span style=font-size:12px>Last seen:<br />' + new Date(node.lastconnect).toLocaleDateString() + ', ' + new Date(node.lastconnect).toLocaleTimeString() + '</span>');
}
@ -1275,8 +1276,19 @@
QH('d2netinfo', 'No network interface information available for this device.');
} else {
var x = '<div style=width:100%;max-height:260px;overflow-x:hidden;overflow-y:auto;line-height:160%>';
x += addHtmlValue2('Last Updated', new Date(message.updateTime).toLocaleString());
if (currentNode.publicip) { x += addHtmlValue2('Public IP address', currentNode.publicip); }
if (currentNode.publicip) {
x += addHtmlValue2('Public IP address', currentNode.publicip);
} else {
if (currentNode.lastconnect) { x += addHtmlValue2('Last agent connection', new Date(currentNode.lastconnect).toLocaleString()); }
if (currentNode.lastaddr) {
if (isPrivateIP(currentNode.lastaddr)) {
x += addHtmlValue2('Last agent address:port', currentNode.lastaddr);
} else {
x += addHtmlValue2('Last agent address:port', '<a href="https://iplocation.com/?ip=' + currentNode.lastaddr.split(':')[0] + '" rel="noreferrer noopener" target=_blank>' + currentNode.lastaddr + '</a>');
}
}
}
x += addHtmlValue2('Last interfaces update', new Date(message.updateTime).toLocaleString());
for (var i in message.netif) {
var net = message.netif[i];
x += '<hr />'
@ -6683,6 +6695,7 @@
function parseUriArgs() { var name, r = {}, parsedUri = window.document.location.href.split(/[\?&|\=]/); parsedUri.splice(0, 1); for (x in parsedUri) { switch (x % 2) { case 0: { name = decodeURIComponent(parsedUri[x]); break; } case 1: { r[name] = decodeURIComponent(parsedUri[x]); var x = parseInt(r[name]); if (x == r[name]) { r[name] = x; } break; } default: { break; } } } return r; }
function focusTextBox(x) { setTimeout(function(){ Q(x).selectionStart = Q(x).selectionEnd = 65535; Q(x).focus(); }, 0); }
function validateEmail(v) { var emailReg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return emailReg.test(v); } // New version
function isPrivateIP(a) { return (a.startsWith('10.') || a.startsWith('172.16.') || a.startsWith('192.168.')); }
</script>
</body>
</html>