#!/bin/bash set -e INTERFACE="enp5s0" LOCAL_IP_SUFFIX=100 LOCAL_PATH="./WisGateOS_2.2.13_RAK_b198_RAK636.rwi" REMOTE_PATH=" /tmp/WisGateOS_2.2.13_RAK_b198_RAK636.rwi" REMOTE_USER="root" SSH_OPTIONS="-o StrictHostKeyChecking=no" echo "🔎 Pobieram MAC adres swojego interfejsu..." OWN_MAC=$(cat /sys/class/net/${INTERFACE}/address | tr '[:lower:]' '[:upper:]') echo "✅ Własny MAC interfejsu $INTERFACE: $OWN_MAC" echo "🎧 Podsłuchuję DHCP pakiety, czekam na bramę..." DEVICE_MAC=$(sudo timeout 60 tcpdump -i $INTERFACE -nn -l -v udp port 67 or udp port 68 \ 2>/dev/null | \ grep -oEi '([0-9a-f]{2}:){5}[0-9a-f]{2}' | \ grep -vi "$OWN_MAC" | \ head -n1) if [ -z "$DEVICE_MAC" ]; then echo "❌ Nie udało się znaleźć żadnego pakietu DHCP poza własnym interfejsem." exit 1 fi echo "✅ Znaleziony MAC bramy: $DEVICE_MAC" # Rozbij MAC na bajty IFS=':' read -ra mac_bytes <<< "$DEVICE_MAC" LAST_B1=${mac_bytes[4]} LAST_B2=${mac_bytes[5]} LAST_B1_DEC=$((16#${LAST_B1})) LAST_B2_DEC=$((16#${LAST_B2})) GATEWAY_IP="169.254.${LAST_B1_DEC}.${LAST_B2_DEC}" LOCAL_IP="169.254.${LAST_B1_DEC}.${LOCAL_IP_SUFFIX}" echo "🌐 Gateway IP: $GATEWAY_IP" echo "🌐 Local IP: $LOCAL_IP" echo "⚙️ Konfiguruję interfejs $INTERFACE..." # Ustawiamy IP lokalne sudo ip addr flush dev $INTERFACE sudo ip addr add ${LOCAL_IP}/24 dev $INTERFACE sudo ip link set $INTERFACE up echo "✅ Interfejs skonfigurowany." #Wgrywanie nowego FW echo "📤 Kopiuję plik ${LOCAL_PATH} na urządzenie..." ssh $SSH_OPTIONS ${REMOTE_USER}@${GATEWAY_IP} "cat > ${REMOTE_PATH}" < $LOCAL_PATH echo "✅ Plik skopiowany." ssh $SSH_OPTIONS ${REMOTE_USER}@${GATEWAY_IP} "\ sysupgrade ${REMOTE_PATH}" echo "✅ System upgraded successfull." echo "🎉 Wszystko gotowe!"