Skip to content

Instantly share code, notes, and snippets.

@enryolto
Created May 4, 2021 10:15
Show Gist options
  • Save enryolto/a263a50976bcb6a2148a71e35b897cd1 to your computer and use it in GitHub Desktop.
Save enryolto/a263a50976bcb6a2148a71e35b897cd1 to your computer and use it in GitHub Desktop.
D-link 932L - shell script to enable, disable or verify status of motion detection
#!/bin/bash
OPERATION=""
IP_ADDRESS=""
DEFAULT_IP="192.168.1.8"
USERNAME=""
PASSWORD=""
USAGE="Usage: $0 <on|off|status> <username> <password> [ip_address]"
#Checks number of input parameters
case $# in
"3")
OPERATION=$1
USERNAME=$2
PASSWORD=$3
#IP_ADDRESS=$DEFAULT_IP
IP_ADDRESS=$(host dcs-932l|head -1|awk '{print $4}')
;;
"4")
OPERATION=$1
USERNAME=$2
PASSWORD=$3
IP_ADDRESS=$4
;;
*)
echo $USAGE
exit 1
;;
esac
#Headers
HEADER_USER_AGENT="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0"
HEADER_ACCEPT="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HEADER_ACCEPT_LANGUAGE="Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3"
HEADER_REFERER="Referer: http://$IP_ADDRESS/motion.htm"
HEADER_CONTENT_TYPE="Content-Type: application/x-www-form-urlencoded"
HEADER_CONNECTION="Connection: keep-alive"
HEADER_UPGRADE_INSECURE_REQUESTS="Upgrade-Insecure-Requests: 1"
case $OPERATION in
"on"|"ON")
curl "http://$IP_ADDRESS/setSystemMotion" -H "Host: $IP_ADDRESS" -H "$HEADER_USER_AGENT" -H "$HEADER_ACCEPT" -H "$HEADER_ACCEPT_LANGUAGE" --compressed -H "$HEADER_REFERER" -H "$HEADER_CONTENT_TYPE" -u $USERNAME:$PASSWORD -H "$HEADER_CONNECTION" -H "$HEADER_UPGRADE_INSECURE_REQUESTS" --data "ReplySuccessPage=motion.htm&ReplyErrorPage=motion.htm&MotionDetectionEnable=1&MotionDetectionScheduleDay=0&MotionDetectionScheduleMode=0&MotionDetectionSensitivity=30&ConfigSystemMotion=Save"
;;
"off"|"OFF")
curl "http://$IP_ADDRESS/setSystemMotion" -H "Host: $IP_ADDRESS" -H "$HEADER_USER_AGENT" -H "$HEADER_ACCEPT" -H "$HEADER_ACCEPT_LANGUAGE" --compressed -H "$HEADER_REFERER" -H "$HEADER_CONTENT_TYPE" -u $USERNAME:$PASSWORD -H "$HEADER_CONNECTION" -H "$HEADER_UPGRADE_INSECURE_REQUESTS" --data "ReplySuccessPage=motion.htm&ReplyErrorPage=motion.htm&MotionDetectionEnable=0&MotionDetectionScheduleDay=0&ConfigSystemMotion=Save"
;;
"status"|"STATUS")
VALUE=$(curl -v -silent "http://$IP_ADDRESS/motion.htm" -H "Host: $IP_ADDRESS" -H "$HEADER_USER_AGENT" -H "$HEADER_ACCEPT" -H "$HEADER_ACCEPT_LANGUAGE" --compressed -H "$HEADER_REFERER" -H "$HEADER_CONTENT_TYPE" -u $USERNAME:$PASSWORD -H "$HEADER_CONNECTION" -H "$HEADER_UPGRADE_INSECURE_REQUESTS" 2>&1 | grep name=MotionDetectionEnable | awk '/checked/{ print $4 }')
case $VALUE in
"value=0")
echo "OFF"
;;
"value=1")
echo "ON"
;;
*)
echo "undefined"
;;
esac
;;
*)
echo $USAGE
exit 1
;;
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment