-
Notifications
You must be signed in to change notification settings - Fork 0
/
nautax
82 lines (70 loc) · 2.21 KB
/
nautax
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
# VerNautaX (Verification Internet Connection) Comprueba su conexion a Internet
# mail: [email protected]
#============================#
# VerNautaX #
# By AnonmousWebHacker #
#----------------------------#
# VerNautaX.sh v 1.1 #
#============================#
#Start script
#check=http://www.google.com/humans.txt
# Servidor para hacer la comprobación cuando se usa ICMP
PING_CHECK_ADDRESS="8.8.8.8" # DNS Google
###### Variables #####
APP_TITLE="NautaX" #Titulo
CURR_STATUS=unknow #Estado inicial desconocido
# Tiempo de espera para comprobar el estado de la conexión. Si la conexión
# es muy inestable prueba aumentando este valor.
CHECK_TIMEOUT=10
# for internal use only
export SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
function Verificar {
while true; do
#Si primera vez y estado desconocido
if [ $CURR_STATUS = "unknow" ]; then
ping -c 1 -W $CHECK_TIMEOUT -n "${PING_CHECK_ADDRESS}" >/dev/null 2>&1;
else
#Agregar Peticion Curl para no sobrecargar trafico
ping -c 1 -W $CHECK_TIMEOUT -n "${PING_CHECK_ADDRESS}" >/dev/null 2>&1;
fi
case $? in
0) status "online";;
1) status "offline";;
*) status "error";;
esac
sleep 5s
done
}
# Establece el estado actual de la conexión sólo si es diferente
# Params: $1 nuevo estado
function status {
if [[ $1 != $CURR_STATUS ]]; then
CURR_STATUS=$1
Notification $CURR_STATUS
fi
}
function Notification {
if [[ $1 == 'online' ]]; then
local content="¡Conexion a Internet establecida!"
notify "$content" normal
elif [[ $1 == 'offline' ]]; then
local content="¡No estás conectado a Internet!"
notify "$content" normal
elif [[ $1 == 'error' ]]; then
local content="¡Ha ocurrido un error de red!\nPuede que tu adaptador de red se encuentre desconectado o hayas perdido la conexión con tu ISP"
notify "$content" low
fi
}
# Muestra una notificación con notify-send
# Params: $1 content, $2 urgency
function notify {
local icon="$SCRIPT_DIR/assets/conn_status_$CURR_STATUS.svg"
local soundfile="$SCRIPT_DIR/sounds/$CURR_STATUS.wav"
notify-send "${APP_TITLE}" "$1" -u "$2" --icon="$icon"
aplay -N $soundfile >/dev/null 2>&1
sleep $CHECK_TIMEOUT
Verificar
}
#Incio Script
Verificar