#!/usr/bin/env bash
set -euo pipefail
target="${1:-sudo-dev.com}"
if [[ ! "$target" =~ ^[A-Za-z0-9][A-Za-z0-9.-]*$ ]]; then
  printf 'target must be a hostname or IPv4 address (for example: sudo-dev.com)\n' >&2
  exit 2
fi
printf '== network check: %s ==\n' "$target"
printf '\nDNS:\n'
if command -v dig >/dev/null 2>&1; then dig +short "$target" || true; elif command -v nslookup >/dev/null 2>&1; then nslookup "$target" || true; else printf '%s\n' 'DNS tool unavailable'; fi
printf '\nHTTP headers:\n'
if command -v curl >/dev/null 2>&1; then curl -sSIL --max-time 10 "https://${target}" 2>&1 | sed -n '1,12p' || true; else printf '%s\n' 'curl unavailable'; fi
printf '\nReachability:\n'
if command -v ping >/dev/null 2>&1; then
  if [ "$(uname -s)" = "Darwin" ]; then ping -c 1 -W 2000 "$target" 2>&1 | tail -n 3 || true; else ping -c 1 -W 2 "$target" 2>&1 | tail -n 3 || true; fi
else
  printf '%s\n' 'ping unavailable'
fi
