Update pruebaRed.sh

This commit is contained in:
Manuel Vergara 2024-02-25 22:40:37 +01:00
parent 1d62cd3a86
commit 1cc828ec3d

View File

@ -10,8 +10,7 @@ COLOR_RESET='\e[0m'
# Control de salida con Ctrl + C # Control de salida con Ctrl + C
function ctrl_c() { function ctrl_c() {
echo -e "${COLOR_RED}\n\n[!] Saliendo... \n${COLOR_RESET}" echo -e "${COLOR_RED}\n\n[!] Saliendo... \n${COLOR_RESET}"
tput cnorm tput cnorm; exit 1
exit 1
} }
# Ctrl+C # Ctrl+C
@ -24,11 +23,11 @@ function print_title {
local total_length=22 local total_length=22
# Calcular el tamaño del margen izquierdo y derecho # Calcular el tamaño del margen izquierdo y derecho
local margin_length=$(((total_length - title_length - 4) / 2)) local margin_length=$(( (total_length - title_length - 4) / 2 ))
# Asegurarse de que el número total de almohadillas sea siempre 22 # Asegurarse de que el número total de almohadillas sea siempre 22
local left_padding=$((margin_length)) local left_padding=$(( margin_length ))
local right_padding=$((margin_length + (title_length % 2))) local right_padding=$(( margin_length + (title_length % 2) ))
echo -e "${COLOR_BLUE}\n$(printf '#%.0s' $(seq 1 $left_padding))#### $title ####$(printf '#%.0s' $(seq 1 $right_padding))\n${COLOR_RESET}" echo -e "${COLOR_BLUE}\n$(printf '#%.0s' $(seq 1 $left_padding))#### $title ####$(printf '#%.0s' $(seq 1 $right_padding))\n${COLOR_RESET}"
} }
@ -64,10 +63,7 @@ print_network_table() {
# Comprobación de dependencias # Comprobación de dependencias
check_dependencies() { check_dependencies() {
for cmd in "jq" "nordvpn" "speedtest"; do for cmd in "jq" "nordvpn" "speedtest"; do
command -v "$cmd" >/dev/null 2>&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; }
echo >&2 "${COLOR_RED}$cmd no está instalado. Instálalo con 'sudo apt-get install $cmd'${COLOR_RESET}"
exit 1
}
done done
} }
@ -83,7 +79,7 @@ network_info=()
# Comprobar conexión # Comprobar conexión
check_connection() { check_connection() {
print_title "COMPROBAR CONEXIÓN" print_title "COMPROBAR CONEXIÓN"
if ping -c 1 -W 2 8.8.8.8 >/dev/null 2>&1; then if ping -c 1 -W 2 8.8.8.8 > /dev/null 2>&1; then
echo -e "\t${COLOR_GREEN}Conexión exitosa con 8.8.8.8${COLOR_RESET}" echo -e "\t${COLOR_GREEN}Conexión exitosa con 8.8.8.8${COLOR_RESET}"
else else
echo -e "\t${COLOR_RED}Error de conexión con 8.8.8.8${COLOR_RESET}" echo -e "\t${COLOR_RED}Error de conexión con 8.8.8.8${COLOR_RESET}"
@ -93,7 +89,7 @@ check_connection() {
# Probar la conexión con el router # Probar la conexión con el router
router_ip=$(get_router_ip "$default_interface") router_ip=$(get_router_ip "$default_interface")
if ping -c 1 -W 2 "$router_ip" >/dev/null 2>&1; then 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}" 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 el router ($router_ip)${COLOR_RESET}"
@ -127,6 +123,7 @@ check_websites() {
done done
} }
# Obtener las interfaces de red # Obtener las interfaces de red
get_interfaces() { get_interfaces() {
print_title "TARJETAS DE RED" print_title "TARJETAS DE RED"
@ -140,7 +137,7 @@ get_interfaces() {
# Obtener IP pública # Obtener IP pública
get_public_ip_info() { get_public_ip_info() {
print_title "INFO IP WAN" print_title "INFO IP WAN"
curl -s https://ipinfo.io | jq -r 'to_entries[] | "\u001b[34m\(.key):\u001b[0m \u001b[32m\(.value)\u001b[0m"' curl -s https://ipinfo.io | jq -r 'to_entries[] | select(.key != "readme") | "\u001b[34m\(.key):\u001b[0m \u001b[32m\(.value)\u001b[0m"'
} }
# Estado de nordvpn # Estado de nordvpn
@ -151,8 +148,8 @@ nordvpn_status() {
# Nueva conexión nordvpn # Nueva conexión nordvpn
nordvpn_connect() { nordvpn_connect() {
print_title "CONECTANDO NORDVPN" print_title "CONECTANDO NORDVPN"
nordvpn connect Spain Barcelona nordvpn connect Spain Barcelona
} }
# Test de velocidad # Test de velocidad
@ -162,7 +159,7 @@ speed_test() {
} }
# Realizar traceroute # Realizar traceroute
traceroute() { traceroute(){
print_title "TRACEROUTE" print_title "TRACEROUTE"
mtr -c 3 -n -r 8.8.8.8 mtr -c 3 -n -r 8.8.8.8
} }
@ -177,26 +174,22 @@ main_menu() {
echo "4 - Información de IP pública" echo "4 - Información de IP pública"
echo "5 - Estado de NordVPN" echo "5 - Estado de NordVPN"
echo "6 - Conectar Nordvpn" echo "6 - Conectar Nordvpn"
echo "7 - Test de velocidad" echo "7 - Test de velocidad"
echo "8 - Traceroute" echo "8 - Traceroute"
echo "9 - Salir" echo "9 - Salir"
read -p "Ingrese el número de la opción deseada: " choice read -p "Ingrese el número de la opción deseada: " choice
case $choice in case $choice in
1) check_connection ;; 1) check_connection ;;
2) check_websites ;; 2) check_websites ;;
3) get_interfaces ;; 3) get_interfaces ;;
4) get_public_ip_info ;; 4) get_public_ip_info ;;
5) nordvpn_status ;; 5) nordvpn_status ;;
6) nordvpn_connect ;; 6) nordvpn_connect ;;
7) speed_test ;; 7) speed_test ;;
8) traceroute ;; 8) traceroute ;;
9) 9) echo -e "${COLOR_RED}\nSaliendo...\n${COLOR_RESET}"; tput cnorm; exit 0 ;;
echo -e "${COLOR_RED}\nSaliendo...\n${COLOR_RESET}" *) echo -e "${COLOR_RED}\nOpción inválida. Inténtelo de nuevo.${COLOR_RESET}" ;;
tput cnorm
exit 0
;;
*) echo -e "${COLOR_RED}\nOpción inválida. Inténtelo de nuevo.${COLOR_RESET}" ;;
esac esac
done done
} }