#!/usr/bin/env bash # Network Utility Functions # Consolidated functions from small network-related scripts # Usage: source "$(dirname "${BASH_SOURCE[0]}")/../utils/network-utils.sh" set -euo pipefail # Load shared modules SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" source "$SCRIPT_DIR/../lib/ip-config.sh" 2>/dev/null || true source "$SCRIPT_DIR/../lib/logging.sh" 2>/dev/null || true # Test network connectivity network_test() { local ip="$1" local port="${2:-}" if [ -n "$port" ]; then if timeout 2 bash -c "/dev/null; then log_success "Network connectivity OK: $ip:$port" return 0 else log_error "Network connectivity FAILED: $ip:$port" return 1 fi else if ping -c 2 -W 2 "$ip" >/dev/null 2>&1; then log_success "Network reachable: $ip" return 0 else log_error "Network unreachable: $ip" return 1 fi fi } # Get IP address network_get_ip() { local interface="${1:-eth0}" ip addr show "$interface" 2>/dev/null | grep -oP 'inet \K[\d.]+' | head -1 } # Check DNS resolution network_check_dns() { local hostname="$1" if host "$hostname" >/dev/null 2>&1; then log_success "DNS resolution OK: $hostname" return 0 else log_error "DNS resolution FAILED: $hostname" return 1 fi }