Update pruebaRed.sh
This commit is contained in:
parent
30bdac305d
commit
a02991c150
162
src/pruebaRed.sh
162
src/pruebaRed.sh
@ -62,9 +62,9 @@ print_network_table() {
|
|||||||
|
|
||||||
# Comprobación de dependencias
|
# Comprobación de dependencias
|
||||||
check_dependencies() {
|
check_dependencies() {
|
||||||
command -v jq >/dev/null 2>&1 || { echo >&2 "${COLOR_RED}jq no está instalado. Instálalo con 'sudo apt-get install jq'${COLOR_RESET}"; exit 1; }
|
for cmd in "jq" "nordvpn" "speedtest"; do
|
||||||
command -v nordvpn >/dev/null 2>&1 || { echo >&2 "${COLOR_RED}nordvpn no está instalado. Instálalo con 'sudo apt-get install nordvpn'${COLOR_RESET}"; exit 1; }
|
command -v "$cmd" >/dev/null 2>&1 || { echo >&2 "${COLOR_RED}$cmd no está instalado. Instálalo con 'sudo apt-get install $cmd'${COLOR_RESET}"; exit 1; }
|
||||||
command -v speedtest >/dev/null 2>&1 || { echo >&2 "${COLOR_RED}speedtest no está instalado. Instálalo con 'sudo apt-get install speedtest-cli'${COLOR_RESET}"; exit 1; }
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Función para obtener la IP del router
|
# Función para obtener la IP del router
|
||||||
@ -77,67 +77,123 @@ get_router_ip() {
|
|||||||
network_info=()
|
network_info=()
|
||||||
|
|
||||||
# Comprobar conexión
|
# Comprobar conexión
|
||||||
print_title "COMPROBAR CONEXIÓN"
|
check_connection() {
|
||||||
if ping -c 1 -W 2 8.8.8.8 > /dev/null 2>&1; then
|
print_title "COMPROBAR CONEXIÓN"
|
||||||
echo -e "\t${COLOR_GREEN}Conexión exitosa con 8.8.8.8${COLOR_RESET}"
|
if ping -c 1 -W 2 8.8.8.8 > /dev/null 2>&1; then
|
||||||
else
|
echo -e "\t${COLOR_GREEN}Conexión exitosa con 8.8.8.8${COLOR_RESET}"
|
||||||
echo -e "\t${COLOR_RED}Error de conexión con 8.8.8.8${COLOR_RESET}"
|
|
||||||
|
|
||||||
# Obtener la interfaz predeterminada
|
|
||||||
default_interface=$(ip route show default | awk '/default/ {print $5}')
|
|
||||||
|
|
||||||
# Probar la conexión con el router
|
|
||||||
router_ip=$(get_router_ip "$default_interface")
|
|
||||||
if ping -c 1 -W 2 "$router_ip" > /dev/null 2>&1; then
|
|
||||||
echo -e "\t${COLOR_GREEN}Conexión exitosa con el router ($router_ip)${COLOR_RESET}"
|
|
||||||
else
|
else
|
||||||
echo -e "\t${COLOR_RED}Error de conexión con el router ($router_ip)${COLOR_RESET}"
|
echo -e "\t${COLOR_RED}Error de conexión con 8.8.8.8${COLOR_RESET}"
|
||||||
exit 1 # Agregar la instrucción exit para detener el script
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
# Obtener la interfaz predeterminada
|
||||||
|
default_interface=$(ip route show default | awk '/default/ {print $5}')
|
||||||
|
|
||||||
# Lista de sitios web a comprobar
|
# Probar la conexión con el router
|
||||||
websites=("vergaracarmona.es" "gitea.vergaracarmona.es" "diariosenderista.es" "marialuisasefardi.es" "prefapp.es")
|
router_ip=$(get_router_ip "$default_interface")
|
||||||
|
if ping -c 1 -W 2 "$router_ip" > /dev/null 2>&1; then
|
||||||
# Verificar el estado de sitios web
|
echo -e "\t${COLOR_GREEN}Conexión exitosa con el router ($router_ip)${COLOR_RESET}"
|
||||||
print_title "VERIFICANDO ESTADO DE WEBS"
|
else
|
||||||
check_website_status() {
|
echo -e "\t${COLOR_RED}Error de conexión con el router ($router_ip)${COLOR_RESET}"
|
||||||
local website=$1
|
exit 1ç
|
||||||
if ping -c 1 -W 2 "$website" > /dev/null 2>&1; then
|
fi
|
||||||
echo -e "\t${COLOR_GREEN}$website está levantado${COLOR_RESET}"
|
|
||||||
else
|
|
||||||
echo -e "\t${COLOR_RED}$website está caído${COLOR_RESET}"
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Iterar sobre la lista de sitios web
|
# Comprobar estado de sitios web
|
||||||
for site in "${websites[@]}"; do
|
check_websites() {
|
||||||
check_website_status "$site"
|
# Lista de sitios web a comprobar
|
||||||
done
|
websites=("vergaracarmona.es" "gitea.vergaracarmona.es" "diariosenderista.es" "marialuisasefardi.es" "prefapp.es")
|
||||||
|
|
||||||
# Mostrar información de tarjetas de red
|
# Verificar el estado de sitios web
|
||||||
print_title "TARJETAS DE RED"
|
print_title "VERIFICANDO ESTADO DE WEBS"
|
||||||
while read -r interface; do
|
check_website_status() {
|
||||||
network_info+=("$(print_network_info "$interface")")
|
local website=$1
|
||||||
done < <(ip -o link show | awk -F': ' '{print $2}')
|
local timeout=5
|
||||||
|
local http_code=$(curl -o /dev/null -L -s -w "%{http_code}" --max-time "$timeout" "$website")
|
||||||
|
|
||||||
# Mostrar la tabla de información de red
|
if [ "$http_code" -eq 200 ]; then
|
||||||
print_network_table
|
echo -e "\t${COLOR_GREEN}$website está levantado. ${COLOR_RESET}"
|
||||||
|
else
|
||||||
|
echo -e "\t${COLOR_RED}$website está caído (Código $http_code)${COLOR_RESET}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Mostrar información de IP WAN
|
# Iterar sobre la lista de sitios web
|
||||||
print_title "INFO IP WAN"
|
for site in "${websites[@]}"; do
|
||||||
curl -s https://ipinfo.io | jq
|
check_website_status "$site"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# Mostrar estado de NordVPN
|
|
||||||
print_title "ESTADO NORDVPN"
|
|
||||||
nordvpn status | grep -v "New feature"
|
|
||||||
|
|
||||||
# Realizar test de velocidad
|
# Obtener las interfaces de red
|
||||||
print_title "TEST DE VELOCIDAD"
|
get_interfaces() {
|
||||||
speedtest
|
print_title "TARJETAS DE RED"
|
||||||
|
while read -r interface; do
|
||||||
|
network_info+=("$(print_network_info "$interface")")
|
||||||
|
done < <(ip -o link show | awk -F': ' '{print $2}')
|
||||||
|
|
||||||
|
print_network_table
|
||||||
|
}
|
||||||
|
|
||||||
|
# Obtener IP pública
|
||||||
|
get_public_ip_info() {
|
||||||
|
print_title "INFO IP WAN"
|
||||||
|
curl -s https://ipinfo.io | jq -r 'to_entries[] | "\u001b[34m\(.key):\u001b[0m \u001b[32m\(.value)\u001b[0m"'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Estado de nordvpn
|
||||||
|
nordvpn_status() {
|
||||||
|
print_title "ESTADO NORDVPN"
|
||||||
|
nordvpn status | grep -v "New feature"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test de velocidad
|
||||||
|
speed_test() {
|
||||||
|
print_title "TEST DE VELOCIDAD"
|
||||||
|
speedtest
|
||||||
|
}
|
||||||
|
|
||||||
# Realizar traceroute
|
# Realizar traceroute
|
||||||
print_title "TRACEROUTE"
|
traceroute(){
|
||||||
mtr -c 3 -n -r 8.8.8.8
|
print_title "TRACEROUTE"
|
||||||
|
mtr -c 3 -n -r 8.8.8.8
|
||||||
|
}
|
||||||
|
|
||||||
|
# Menú principal
|
||||||
|
main_menu() {
|
||||||
|
while true; do
|
||||||
|
print_title "Menú"
|
||||||
|
echo "1 - Comprobar conexión"
|
||||||
|
echo "2 - Verificar estado de webs"
|
||||||
|
echo "3 - Ver tarjetas de red"
|
||||||
|
echo "4 - Información de IP pública"
|
||||||
|
echo "5 - Estado de NordVPN"
|
||||||
|
echo "6 - Test de velocidad"
|
||||||
|
echo "7 - Traceroute"
|
||||||
|
echo "8 - Salir"
|
||||||
|
|
||||||
|
read -p "Ingrese el número de la opción deseada: " choice
|
||||||
|
case $choice in
|
||||||
|
1) check_connection ;;
|
||||||
|
2) check_websites ;;
|
||||||
|
3) get_interfaces ;;
|
||||||
|
4) get_public_ip_info ;;
|
||||||
|
5) nordvpn_status ;;
|
||||||
|
6) speed_test ;;
|
||||||
|
7) traceroute ;;
|
||||||
|
8) echo -e "${COLOR_RED}\nSaliendo...\n${COLOR_RESET}"; tput cnorm; exit 0 ;;
|
||||||
|
*) echo -e "${COLOR_RED}\nOpción inválida. Inténtelo de nuevo.${COLOR_RESET}" ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Función principal
|
||||||
|
main() {
|
||||||
|
check_connection
|
||||||
|
check_websites
|
||||||
|
get_interfaces
|
||||||
|
get_public_ip_info
|
||||||
|
nordvpn_status
|
||||||
|
main_menu
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
Loading…
Reference in New Issue
Block a user