Files
local_machine/docs/old_mac/scripts/discover-fedora.sh

69 lines
2.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# Mac: найти Fedora в сети хотспота.
# bash docs/old_mac/scripts/discover-fedora.sh
set -euo pipefail
SUBNET=""
IFACE="en0"
wifi_ip() {
ifconfig "$IFACE" 2>/dev/null | awk '/inet / {print $2; exit}'
}
IP="$(wifi_ip || true)"
[ -n "$IP" ] || { printf 'Wi-Fi IP не найден на %s\n' "$IFACE"; exit 1; }
SUBNET="$(printf '%s\n' "$IP" | awk -F. '{print $1"."$2"."$3}')"
printf 'Mac Wi-Fi: %s (подсеть %s.0/24)\n\n' "$IP" "$SUBNET"
# mDNS
printf '%s\n' '--- mDNS ---'
for name in fedora.local fedora; do
FIP=""
if command -v dscacheutil >/dev/null 2>&1; then
FIP="$(dscacheutil -q host -a name "$name" 2>/dev/null | awk '/ip_address:/ {print $2; exit}')"
fi
[ -n "$FIP" ] || FIP="$(ping -c 1 -t 1 "$name" 2>/dev/null | sed -n 's/.*(\([0-9.]*\)).*/\1/p' | head -1)"
if [ -n "$FIP" ]; then
printf '%s → %s\n' "$name" "$FIP"
if ping -c 1 -W 1000 "$FIP" >/dev/null 2>&1; then
printf ' ping: ok\n'
else
printf ' ping: FAIL (вероятна изоляция клиентов хотспота)\n'
fi
if nc -z -w 2 "$FIP" 22 2>/dev/null; then
printf ' ssh:22: open\n'
else
printf ' ssh:22: closed/unreachable\n'
fi
if nc -z -w 2 "$FIP" 3389 2>/dev/null; then
printf ' rdp:3389: open\n'
else
printf ' rdp:3389: closed/unreachable\n'
fi
fi
done
printf '%s\n' '--- ARP ---'
arp -a 2>/dev/null | grep "$SUBNET" | grep -v 'incomplete' || true
printf '%s\n' '--- Быстрый sweep (ssh:22) ---'
FOUND=0
for i in $(seq 1 254); do
T="$SUBNET.$i"
[ "$T" = "$IP" ] && continue
nc -z -G 1 -w 1 "$T" 22 2>/dev/null && printf 'ssh open: %s\n' "$T" && FOUND=1
done
[ "$FOUND" -eq 0 ] && printf '(ни одного ssh:22 не найдено)\n'
printf '%s\n' '--- BT PAN fallback ---'
printf 'Проверка 172.20.99.1 (Fedora BT PAN)…\n'
if ping -c 1 -W 1000 172.20.99.1 >/dev/null 2>&1; then
printf ' ping 172.20.99.1: ok\n'
else
printf ' ping 172.20.99.1: нет (запустите setup-bt-pan-fedora.sh на Fedora)\n'
fi
printf '\nПодсказка: если ping FAIL но mDNS есть — отключите AP isolation на телефоне\n'
printf 'или используйте Bluetooth PAN: REMOTE_ACCESS.md §4\n'