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) . ')';