Userscript (Greasemonkey/Tampermonkey)

For use in Greasemonkey, Tampermonkey or Chrome(ium)

Lansweeper Ping

// ==UserScript==
// @name        Lansweeper
// @namespace   azur
// @author      Marco Krage
// @include     http://lansweeper.marien-kh.mkh:81/report.aspx*
// @updateURL   http://file2.marien-kh.mkh/userscripts/Lansweeper.user.js
// @require     http://file2.marien-kh.mkh/userscripts/jquery.2.0.3.min.js
// @version     3.4
// ==/UserScript==
 
// http://www.appelsiini.net/projects/viewport
(function($){$.belowthefold=function(element,settings){var fold=$(window).height()+$(window).scrollTop();return fold<=$(element).offset().top-settings.threshold;};$.abovethetop=function(element,settings){var top=$(window).scrollTop();return top>=$(element).offset().top+$(element).height()-settings.threshold;};$.rightofscreen=function(element,settings){var fold=$(window).width()+$(window).scrollLeft();return fold<=$(element).offset().left-settings.threshold;};$.leftofscreen=function(element,settings){var left=$(window).scrollLeft();return left>=$(element).offset().left+$(element).width()-settings.threshold;};$.inviewport=function(element,settings){return!$.rightofscreen(element,settings)&&!$.leftofscreen(element,settings)&&!$.belowthefold(element,settings)&&!$.abovethetop(element,settings);};$.extend($.expr[':'],{"below-the-fold":function(a,i,m){return $.belowthefold(a,{threshold:0});},"above-the-top":function(a,i,m){return $.abovethetop(a,{threshold:0});},"left-of-screen":function(a,i,m){return $.leftofscreen(a,{threshold:0});},"right-of-screen":function(a,i,m){return $.rightofscreen(a,{threshold:0});},"in-viewport":function(a,i,m){return $.inviewport(a,{threshold:0});}});})(jQuery);
// https://gist.github.com/4194061
jQuery.fn.selectText = function() {var doc = document,element = this[0],range, selection;if (doc.body.createTextRange) {range = document.body.createTextRange();range.moveToElementText(element);range.select();} else if (window.getSelection) {selection = window.getSelection();range = document.createRange();range.selectNodeContents(element);selection.removeAllRanges();selection.addRange(range);}};
 
unsafeWindow.console.log("Userscript-Lansweeper");
 
// Select Computername
$('#reptable').on('click', 'td', function() {
  link = $(this).find("a[href*='asset.aspx?AssetID=']");
  if(link.length){
  	console.log("Select: " + link.text());
  	link.selectText();
  }
});
 
// Add domian to Scaning queue Link
//$('a[href="http://mgmt1:9524"]').attr('href', 'http://mgmt1.marien-kh.mkh:9524');
 
// Style Ping Check
$("head").append('<style type="text/css">#load {display: none!important;} .checkBtn {float:right;} .checkBtn:hover { cursor: pointer; text-decoration: underline; }.on { background-color: #B0DFA9!important; }.off { background-color: #FC9393!important; }</style>');
 
// check all in Viewport
$('#reptable').on('dblclick', 'tr', function() {
  $("a[href*='asset.aspx?AssetID=']:in-viewport").each(function() {
    var link = $(this);
    var host = link.html();
    var row = link.parents('tr');
 
    if (row.hasClass("checked") == false && row.hasClass("check") == false) {
      row.addClass("check");
 
      $.getJSON("http://file2.marien-kh.mkh/Lansweeper.ping.php?h=" + host, function(data) {
 
        console.log("Ping: "+host);
 
        row.removeClass("check");
 
        if (data.result > 0) {
          //console.log("Status: online");
          //console.log("Lat: "+data.avg);
          row.removeClass("off").addClass("on").addClass("checked");
        } else {
          //console.log("Status: offline");
          row.removeClass("on").addClass("off").addClass("checked");
        }
      });
    }
  });
  return false;
});
 
// Check single
$('#reptable').on('click', 'tr', function() {
  var link = $(this).find("a[href*='asset.aspx?AssetID=']");
  var host = link.html();
  var row = link.parents('tr');
 
  if (row.hasClass("checked") == false && row.hasClass("check") == false) {
 
    row.addClass("check");
 
    $.getJSON("http://file2.marien-kh.mkh/Lansweeper.ping.php?h=" + host, function(data) {
 
      console.log("Ping: "+host);
 
      row.removeClass("check");
 
      if (data.result > 0) {
        //console.log("Status: online");
        //console.log(data.avg);
        row.removeClass("off").addClass("on").addClass("checked");
      } else {
        //console.log("Status: offline");
        row.removeClass("on").addClass("off").addClass("checked");
      }
    });
  }
});

ping.php

<?php
// Report all PHP errors
error_reporting(-1);
 
$ip = $_GET['h'];
if( empty($ip) ) { $ip = '128.53.1.1'; }
 
 
$exec = exec("ping -c 1 -w 1 ".$ip);
 
 
$array = explode("/", end(explode("=", $exec )) );
#print_r($array);

 
if( $array[1] > 0 ){
  $r->result = 1;
}else{
  $r->result = 0;
}
 
$r->host = $ip;
$r->avg = $array[1];
 
#print_r($r);

$time = time();
 
$log = exec("echo '".$ip." ".$r->result." ".$time."' >> /tmp/ping.log");
 
 
echo $_GET['callback']. '('. json_encode($r) . ')';
pub/userscript.txt · Zuletzt geändert: 2020/04/10 16:27 von Marco Krage