Advertisement
gpz1100

Untitled

Mar 11th, 2025
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. #EAP DFS Event recovery script
  4. #
  5. #
  6. # * change http to https in curl lines if enabled
  7. #
  8. #Formatting for freebsd, linux/bash may require minor formatting changes
  9. # * "-ne" in comparison check instead of "=="
  10. #
  11. #
  12. #20250101 updates https after eap fw updates
  13.  
  14.  
  15. #for reference, 5Ghz Channel numbers
  16. <<comment
  17. 0 auto
  18. 1 36
  19. 2 40
  20. 3 44
  21. 4 48
  22. 5 52
  23. 6 56
  24. 7 60
  25. 8 64
  26. 9 100
  27. 10 104
  28. 11 108
  29. 12 112
  30. 13 116
  31. 14 120
  32. 15 124
  33. 16 128
  34. 17 132
  35. 18 136
  36. 19 140
  37. 20 149
  38. 21 153
  39. 22 157
  40. 23 161
  41. 24 165
  42. comment
  43.  
  44.  
  45.  
  46. EAP_HOST="eap670.local.domain"
  47. USERNAME="admin"
  48. PASSWORD="{PASSWORD HASH - obtained from browser developer tools}"
  49.  
  50. #5ghz channel number
  51. DESIRED_CHANNEL="100"
  52. #5ghz channel id
  53. DESIRED_CHANNEL_ID="9"
  54.  
  55. WIRELESS_MODE=16
  56. CHANNEL_WIDTH=7
  57. CHANNELLIMIT=0
  58. TXPOWER=28
  59. IS_APMODE=1
  60. RADIOID=1
  61.  
  62. #Obtain session ID cookie
  63. SESSION_ID=$(curl -k -Ss "https://$EAP_HOST/" -X POST --data-raw 'username='$USERNAME'&password='$PASSWORD'' --cookie-jar - | grep "SESSION" | cut -f 7)
  64.  
  65. #Read current channel
  66. #CURRENT_CHANNEL=$(curl -sS "http:/$EAP_HOST/data/status.wireless.radio.json?operation=read&radioID=1" -H "Referer: https://$EAP_HOST/" -H "Cookie: JSESSIONID=$SESSION_ID" | grep "channel" | awk '{print $2}' | cut -c 2-4 )
  67.  
  68. CURRENT_CHANNEL=$(curl -k -Ss "http:/$EAP_HOST/data/status.wireless.radio.json?operation=read&radioID=1" -H 'Referer: http://'$EAP_HOST'/' -H 'Cookie: JSESSIONID='$SESSION_ID'' | grep "channel" | awk '{print $2}' | cut -c 2-4 )
  69.  
  70. #for debugging, normally disabled
  71. #echo EAP_HOST $EAP_HOST, USERNAME $USERNAME, PASSWORD $PASSWORD, SESSION_ID $SESSION_ID, CURRENT_CHANNEL $CURRENT_CHANNEL, DESIRED_CHANNEL $DESIRED_CHANNEL
  72.  
  73. if [ $CURRENT_CHANNEL != $DESIRED_CHANNEL ]
  74. then
  75.  
  76. logger -s -t "dfs" "$EAP_HOST DFS event occurred, current channel $CURRENT_CHANNEL" >/dev/null 2>&1
  77.  
  78. curl -k -Ss "http://$EAP_HOST/data/wireless.basic.json" -X POST -H "Referer: http://$EAP_HOST/" -H "Cookie: JSESSIONID=$SESSION_ID" --data-raw "operation=write&wireless_mode=$WIRELESS_MODE&chan_width=$CHANNEL_WIDTH&channelLimit=$CHANNELLIMIT&channel=$DESIRED_CHANNEL_ID&txpower=$TXPOWER&is_apmode=$IS_APMODE&radioID=$RADIOID" -o /dev/null
  79.  
  80. CURRENT_CHANNEL_NEW=$(curl -k -Ss "http:/$EAP_HOST/data/status.wireless.radio.json?operation=read&radioID=1" -H 'Referer: http://'$EAP_HOST'/' -H 'Cookie: JSESSIONID='$SESSION_ID'' | grep "channel" | awk '{print $2}' | cut -c 2-4 )
  81.  
  82. logger -s -t "dfs" "$EAP_HOST Channel set back to $CURRENT_CHANNEL_NEW" >/dev/null 2>&1
  83. echo Channel reset back to $CURRENT_CHANNEL_NEW from $CURRENT_CHANNEL | /usr/local/bin/mail.php -s"DFS Event"
  84.  
  85. fi
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement