Moniteur de disponibilité de connexion Internet simple


8

Je dois simplement surveiller la fréquence à laquelle une connexion Internet tombe en panne - et pendant combien de temps. J'allais juste écrire un peu de python qui faisait un ping à 8.8.8.8 toutes les minutes, mais je pensais qu'il devait y avoir un utilitaire qui le faisait - et produisait un joli rapport

Mais il s'agit d'une succursale avec une simple connexion de type SOHO, aucun routeur SNMP, Windows uniquement, doit fonctionner sur une machine de bureau qui n'est pas dédiée à la tâche.

Vous n'avez pas besoin de connaître la capacité, la latence du ping ou quoi que ce soit - juste un rapport du nombre de fois où il a été interrompu pendant plus de quelques secondes chez le câblodistributeur.

Réponses:


5

Je fais cela dans l'autre sens avec Pingdom . Compte gratuit, un chèque. Envoyez une requête ping à l'adresse IP WAN du routeur, et tout va bien. Vous obtenez un rapport mensuel de disponibilité et vous pouvez crier à la compagnie de câble.


Je ne savais pas qu'ils avaient une version gratuite. Merci
Martin Beckett

Pingdom facture maintenant 100 $ / an pour cela - il est temps de chercher ailleurs
Martin Beckett

Vraiment? J'ai toujours un moniteur de niveau gratuit à un contrôle et je n'ai rien entendu à leur sujet pour l'arrêter.
Tom O'Connor

1
pingdom.com/free C'est bien caché au bas de la page Tarification. Sournois.
Tom O'Connor

2
Cela est lié à leur essai gratuit maintenant
Rehan Khwaja

1

je ne connais aucun util mais je me suis fait un code simple pour ça avec 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;

Ce qu'il fait, c'est qu'il essaiera d'envoyer une requête ping à Google à chaque fois qu'il s'exécutera et il imprimera ensuite dans un fichier s'il a reçu une réponse ou non avec l'heure afin que vous puissiez vérifier plus tard de quelle heure à quelle heure Internet n'était pas disponible.

Si vous l'aimez, je peux apporter les petites modifications à utiliser dans Windows et vous avez dû installer ActivePerl, c'est tout.

Les seuls changements nécessaires sont les chemins et les commandes qui peuvent être différents sur windows rien d'autre.


1
C'est à peu près ce que j'aurais écrit (uniquement en python) - je supposais juste qu'il y avait un petit outil systray pour le faire.
Martin Beckett

Pour être honnête, je n'ai jamais pris la peine d'en chercher un, mais comme vous cherchiez quelque chose comme ça, je pensais que je devrais partager ce que j'utilise avec vous / toute autre personne de la communauté qui aurait besoin de quelque chose de similaire :) et encore une fois désolé de ne pas avoir connais aucun outil.
Prix

Le ping ne doit être envoyé qu'au premier routeur contrôlé par le FAI, c'est-à-dire le premier appareil dont vous n'avez pas le contrôle. De plus en plus de FAI désactivent ICMP à cause de ce genre de chose. Le trafic ICMP vers le périphérique périphérique est OK, mais à travers la dorsale est juste une perte de bande passante.
dbasnett

@dbasnett ofc je l'ai changé en google en caché à l'endroit où je ping :)
Prix

@dbasnett bon point - j'ai supposé que le 8.8.8.8 de Google pouvait gérer la charge.
Martin Beckett

1

J'étudie actuellement un problème similaire (une panne DSL dans une succursale). J'exécute PingPlotter à distance; c'est un programme Windows et génère un graphique simple à lire. J'ai utilisé le graphique pour indiquer à l'ISP à quelle heure le lien tombe.

(Maintenant, attendez que le FAI le répare réellement - faites-moi savoir si vous avez des conseils sur la façon de faire fonctionner les opérateurs de télécommunications plus rapidement!)


2
Désolé - je pense que ce problème est connu comme NP-très-très-difficile
Martin Beckett


0

Essayez l' édition gratuite de PA Server Monitor . Il est de portée limitée, mais la version gratuite fera Ping et créera des graphiques pour vous. Fonctionne sur Windows et en tant que service d'arrière-plan pour ne pas gêner.


essayé - trop compliqué à configurer. On dirait que j'écrirai un peu de python
Martin Beckett

0

Powershell rapide et sale

while ($true) {

  #if (test-connection -count 1 microsoft.com -Quiet) {    



  if (test-connection -count 1 google.com ) {    
   $result=(get-date).ToString("yyyy-MM-dd hh:mm:ss")
   $result = "$result ok"
   "$result" | Tee-Object -FilePath c:\~~temp\router_log.txt -append     #"$result" | Out-File -FilePath c:\~~temp\router_log.txt -append

   sleep 5

 } else {
    while (-not (test-connection -count 1 google.com -Quiet)) {    
        $result=(get-date).ToString("yyyy-MM-dd hh:mm:ss")
        $result = "$result down"
        "$result" | Tee-Object -FilePath c:\~~temp\router_log.txt -append
        sleep -millisecond 100
    }
}

}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.