From bbf4e5a5271c0691e364052ddd74182c3de82907 Mon Sep 17 00:00:00 2001 From: radek Date: Fri, 11 Jul 2025 17:27:14 +0200 Subject: [PATCH] Update raktest.sh --- raktest.sh | 51 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/raktest.sh b/raktest.sh index bb54f71..dfc2870 100644 --- a/raktest.sh +++ b/raktest.sh @@ -28,29 +28,46 @@ VPN_DNS="8.8.8.8" LORAWAN_TTN_HOST="10.130.0.19" echo "🔎 Pobieram MAC adres swojego interfejsu..." -OWN_MAC=$(cat /sys/class/net/${INTERFACE}/address | tr '[:lower:]' '[:upper:]') +# Sprawdzamy, czy podano argument ABCD +if [ $# -eq 1 ]; then + HEX=$1 -echo "✅ Własny MAC interfejsu $INTERFACE: $OWN_MAC" + # Sprawdzamy czy długość to dokładnie 4 znaki hex + if [[ ! $HEX =~ ^[0-9A-Fa-f]{4}$ ]]; then + echo "❌ Podany parametr musi być 4-znakowym ciągiem heksadecymalnym (np. ABCD)." + exit 1 + fi -echo "🎧 Podsłuchuję DHCP pakiety, czekam na bramę..." + LAST_B1="${HEX:0:2}" + LAST_B2="${HEX:2:2}" + echo "✅ Używam ręcznie podanego bajtu MAC: $LAST_B1:$LAST_B2" -DEVICE_MAC=$(sudo timeout 15 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) +else + 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" -if [ -z "$DEVICE_MAC" ]; then - echo "❌ Nie udało się znaleźć żadnego pakietu DHCP poza własnym interfejsem." - exit 1 + echo "🎧 Podsłuchuję DHCP pakiety, czekam na bramę..." + + DEVICE_MAC=$(timeout 15 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 -Fvi "$OWN_MAC" | \ + sort -u | \ + 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" + + IFS=':' read -ra mac_bytes <<< "$DEVICE_MAC" + LAST_B1=${mac_bytes[4]} + LAST_B2=${mac_bytes[5]} 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}))