02-dhcp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/bin/sh
  2. # DHCP hotplug script - triggers on DHCP events
  3. # Install to /etc/hotplug.d/dhcp/
  4. SERVER_URL="${SERVER_URL:-http://163.245.193.47:3843}"
  5. ROUTER_ID="${ROUTER_ID:-$(cat /proc/sys/kernel/hostname)}"
  6. log() {
  7. logger -t client2server-hotplug -p user.info "$1"
  8. }
  9. send_event() {
  10. local event_type="$1"
  11. local data="$2"
  12. json="{\"router_id\":\"$ROUTER_ID\",\"event\":\"$event_type\",\"data\":$data}"
  13. curl -s -X POST "$SERVER_URL/api/events" \
  14. -H "Content-Type: application/json" \
  15. -d "$json" 2>/dev/null
  16. log "Sent: $event_type"
  17. }
  18. # Handle DHCP events
  19. case "$ACTION" in
  20. add)
  21. if [ -n "$MAC" ] && [ -n "$IP" ]; then
  22. log "DHCP NEW: $MAC -> $IP"
  23. send_event "dhcp_new" "{\"mac\":\"$MAC\",\"ip\":\"$IP\",\"hostname\":\"$HOSTNAME\"}"
  24. fi
  25. ;;
  26. del|remove)
  27. if [ -n "$MAC" ] && [ -n "$IP" ]; then
  28. log "DHCP RELEASE: $MAC -> $IP"
  29. send_event "dhcp_release" "{\"mac\":\"$MAC\",\"ip\":\"$IP\"}"
  30. fi
  31. ;;
  32. esac