From dc3f00fd31749c5b258823073b1c3d22fbc09e86 Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Fri, 23 Apr 2021 11:43:24 +0500 Subject: [PATCH] added dhiraagu-ddns --- dhiraagu-ddns/dip.sh | 41 ++++++++++++++++++++++++++++++++ dhiraagu-ddns/dipcf.sh | 53 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100755 dhiraagu-ddns/dip.sh create mode 100755 dhiraagu-ddns/dipcf.sh diff --git a/dhiraagu-ddns/dip.sh b/dhiraagu-ddns/dip.sh new file mode 100755 index 0000000..8cb4fdd --- /dev/null +++ b/dhiraagu-ddns/dip.sh @@ -0,0 +1,41 @@ +#!/bin/bash +source .env + +DHIRAAGU_LOGIN_URL='https://portal.dhivehinet.net.mv/adsls/login_api' +DHIRAAGU_HOME_URL='https://portal.dhivehinet.net.mv/home' + + + +AUTH=$(curl -s -c /tmp/dcookies \ + --data-urlencode data[adsl][username]=$DHIRAAGU_USERNAME \ + --data-urlencode data[adsl][password]=$DHIRAAGU_PASSWORD \ + $DHIRAAGU_LOGIN_URL \ + | awk -F ',' '{print $2}' \ + | cut --complement -d ':' -f 1) + +if [ "$AUTH" = "1" ] + then + : +elif [ "$AUTH" = "0" ] + then + echo "Username or Password incorrect" 1>&2 + rm /tmp/dcookies + exit +else + echo "Unknown Error" 1>&2 + rm /tmp/dcookies + exit +fi + + +DIP=$(curl -s -b /tmp/dcookies \ + $DHIRAAGU_HOME_URL \ + | grep 'IP Address' -A1 \ + | tail -n1 \ + | awk '{print $2}' \ + | cut -f1 -d '<' \ + | cut --complement -d '>' -f 1) + +echo IP Address = $DIP + +rm /tmp/dcookies diff --git a/dhiraagu-ddns/dipcf.sh b/dhiraagu-ddns/dipcf.sh new file mode 100755 index 0000000..0f6d0d9 --- /dev/null +++ b/dhiraagu-ddns/dipcf.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +#Import Credentials +source .env + +DHIRAAGU_LOGIN_URL='https://portal.dhivehinet.net.mv/adsls/login_api' +DHIRAAGU_HOME_URL='https://portal.dhivehinet.net.mv/home' +CF_API_URL='https://api.cloudflare.com/client/v4' + +#Set AUTH, login to generate cookie in /tmp directory and regext to extract AUTH status. +AUTH=$(curl -s -c /tmp/dcookies \ + --data-urlencode data[adsl][username]=$DHIRAAGU_USERNAME \ + --data-urlencode data[adsl][password]=$DHIRAAGU_PASSWORD \ + $DHIRAAGU_LOGIN_URL \ + | awk -F ',' '{print $2}' \ + | cut --complement -d ':' -f 1) + +#Check if Dhiraagu Username and password is correct before continuing. Print error, elete the cookie and stop script if any errors. +if [ "$AUTH" = "1" ] + then + : +elif [ "$AUTH" = "0" ] + then + echo "Username or Password incorrect" 1>&2 + rm /tmp/dcookies + exit +else + echo "Unknown Error" 1>&2 + rm /tmp/dcookies + exit +fi + +#Set DHIRAAGU_IP, login with generated cookie and some regex to extract Dhiraagu IP address +DHRAAGU_IP=$(curl -s -b /tmp/dcookies \ + $DHIRAAGU_HOME_URL \ + | grep 'IP Address' -A1 \ + | tail -n1 \ + | awk '{print $2}' \ + | cut -f1 -d '<' \ + | cut --complement -d '>' -f 1) + +#Send Dhiraagu IP to cloudflare for DNS update +curl -s -X PUT $CF_API_URL/zones/$CF_ZONE_ID/dns_records/$CF_DNS_RECORDS \ + -H Content-Type:application/json \ + -H X-Auth-Key:$CF_API_KEY \ + -H X-Auth-Email:$CF_EMAIL \ + --data '{"type":"A","name":"'${CF_DOMAIN}'","content":"'${DHIRAAGU_IP}'","ttl":120,"proxied":false}' > /dev/null + +#Print IP address to console +echo IP Address = $DIP + +#delete the cookie from /tmp directory +rm /tmp/dcookies