Windows

簡單的網際網路連接正常執行時間監視器

  • June 19, 2019

我只需要監控網際網路連接中斷的頻率 - 以及持續多長時間。我打算只寫一點每分鐘 ping 8.8.8.8 的 python,但我認為必須有一個實用程序來執行此操作 - 並生成一個很好的報告

但這是一個具有簡單 SOHO 類型連接的分支機構,沒有 SNMP 路由器,只有 Windows,必須在非專用於任務的台式電腦上執行。

不需要知道容量、ping 延遲或任何東西 - 只需報告它停機超過幾秒鐘的次數即可向有線電視公司揮手。

我用Pingdom 反過來做。免費賬戶,一張支票。ping 路由器的 WAN ip 地址,一切正常。你會得到一份每月正常執行時間報告,你可以對有線電視公司大喊大叫。

我不知道任何實用程序,但我用 perl 為自己做了一個簡單的程式碼:

#!/usr/bin/perl

use Net::Ping;
use POSIX qw/strftime/;

if (-e '/var/run/net_test.pid') {
       print "net_test already running.\n";
       exit;
} else {
       system "touch /var/run/net_test.pid";
}

my $host   = "www.google.com";
my $ping   = Net::Ping->new('icmp');
my $result = $ping->ping($host,2);

if ($result != 1) {
       $format = strftime('[%d/%m/%Y %H:%M:%S]',localtime)." Internet is not available...";
       $run = `echo $format >> /var/log/virtua_net`;
       while ($result != 1) {
               $result = $ping->ping($host,2);
               sleep 60;
       }
       $format = strftime('[%d/%m/%Y %H:%M:%S]',localtime)." Internet is back...";
       $run = `echo $format >> /var/log/virtua_net`;
} else {
       $format = strftime('[%d/%m/%Y %H:%M:%S]',localtime)." Internet is ok...";
       $run = `echo $format >> /var/log/virtua_net`;
}
$ping->close();

system "rm -rf /var/run/net_test.pid" if (-e "/var/run/net_test.pid");
exit;

它的作用是每次執行時都會嘗試 ping google,然後它會列印到一個文件,如果它得到回复或沒有與時間一起,這樣你就可以稍後檢查從什麼時間到什麼時間網際網路不可用。

如果你喜歡它,我可以做一些小的改動以在 Windows 中使用,而你確實需要安裝 ActivePerl。

唯一需要的更改是在 Windows 上可能不同的路徑和命令。

引用自:https://serverfault.com/questions/187865