Module Lua ping
Le module ping
permet d'effectuer des tests de connectivité réseau en envoyant des paquets ICMP (Internet Control Message Protocol) à une adresse IP ou un nom de domaine. Il est utile pour vérifier si un hôte est accessible sur le réseau.
Pour l'importer il faut utiliser la déclaration suivante :
Configuration
Le module ping
nécessite une configuration spécifique pour fonctionner. Cette configuration est définie dans le fichier de configuration de l'agent.
Pour la configuration voici un exemple de toutes les options possibles :
iot:
modules:
ping:
- name: ping1 # nom du module
count: 4 # nombre de paquets à envoyer
timeout: 5 # timeout en secondes
privileged: false # si true, le module doit être exécuté avec des privilèges élevés (root)
Détails de la configuration
- name : Nom du module. Il doit être unique et ne pas contenir d'espaces ou de caractères spéciaux.
- count : Nombre de paquets ICMP à envoyer. Par défaut, c'est
4
. - timeout : Temps d'attente pour chaque réponse. Par défaut, c'est
5
secondes. - privileged : Si
true
, le module doit être exécuté avec des privilèges élevés (root). Par défaut, c'estfalse
.
Fonctions Lua
ping.ping(target, [count, timeout])
Effectue un test de connectivité en envoyant des paquets ICMP à l'adresse cible spécifiée.
- Paramètres :
target
(string) : L'adresse IP ou le nom de domaine à tester.count
(number) : Le nombre de paquets ICMP à envoyer. Par défaut, c'est4
.-
timeout
(number) : Le temps d'attente pour chaque réponse en secondes. Par défaut, c'est5
. -
Retour :
- Un tableau contenant les résultats du test de connectivité, y compris le temps de réponse pour chaque paquet envoyé :
target
: L'adresse cible.sent
: Le nombre de paquets envoyés.received
: Le nombre de paquets reçus.packet_loss
: Le pourcentage de perte de paquets.min_rtt_us
: Le temps de réponse minimum en microseconde.avg_rtt_us
: Le temps de réponse moyen en microseconde.max_rtt_us
: Le temps de réponse maximum en microseconde.stddev_rtt_us
: L'écart type du temps de réponse en microseconde.
local ping = require("ping1")
local result = ping.ping("example.com", 4, 5)
if result then
print("Ping réussi :")
print("Cible : " .. result.target)
print("Paquets envoyés : " .. result.sent)
print("Paquets reçus : " .. result.received)
print("Perte de paquets : " .. result.packet_loss .. "%")
print("RTT min : " .. result.min_rtt_us .. " us")
print("RTT moyen : " .. result.avg_rtt_us .. " us")
print("RTT max : " .. result.max_rtt_us .. " us")
print("RTT écart type : " .. result.stddev_rtt_us .. " us")
else
print("Erreur lors du ping.")
end
Champs Lua associés
ping.name
: Retourne le nom de l'instanceping
.ping.type
: Retourne le type du module (ici,ping1
).