알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)

Freenom DDNS 사용 하기 본문

Web

Freenom DDNS 사용 하기

백곳 2019. 4. 26. 00:40

Freenom 에서 DDNS 을 사용 하기위한 방법 입니다. 

 

https://gist.github.com/a-c-t-i-n-i-u-m/bc4b1ff265b277dbf195#gistcomment-2551686

 

Dynamic DNS support shell script for freenom.com

Dynamic DNS support shell script for freenom.com. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

여기에서 가지고 왔습니다 .

 

nano update.sh 

#!/bin/bash 
set -u 

# settings 
# Login information of freenom.com 
freenom_email="main@address"  
freenom_passwd="pswd" 
# Open DNS management page in your browser. 
# URL vs settings: 
#   https://my.freenom.com/clientarea.php?managedns={freenom_domain_name}&domainid={freenom_domain_id} 
freenom_domain_name="domain.name" 
freenom_domain_id="000000000" 
BASE_URL="https://my.freenom.com" 
CAREA_URL="$BASE_URL/clientarea.php" 
LOGIN_URL="$BASE_URL/dologin.php" 
LOGOUT_URL="$BASE_URL/logout.php" 
MANAGED_URL="$CAREA_URL?managedns=$freenom_domain_name&domainid=$freenom_domain_id" 
GET_IP_URL="https://api.ipify.org/" 

# get current ip address 
current_ip="$(curl -s "$GET_IP_URL")" 

if [ -z "$current_ip" ]; then 
    echo "Could not get current IP address." 1>&2 
    exit 1 
fi 

cookie_file=$(mktemp) 
cleanup() { 
    echo "Cleanup" 
    rm -f "$cookie_file" 
} 
trap cleanup INT EXIT TERM 

echo "Login" 
loginResult=$(curl --compressed -k -L -c "$cookie_file" \ 
                   -F "username=$freenom_email" -F "password=$freenom_passwd" \ 
                   -e "$CAREA_URL" \ 
                   "$LOGIN_URL" 2>&1) 

if [ ! -s "$cookie_file" ]; then 
    echo "Login failed: empty cookie." 1>&2 
    exit 1 
fi 

if echo "$loginResult" | grep -q "/clientarea.php?incorrect=true"; then 
    echo "Login failed." 1>&2 
    exit 1 
fi 

echo "Update $current_ip to domain($freenom_domain_name)" 
updateResult=$(curl --compressed -k -L -b "$cookie_file" \ 
                    -e "$MANAGED_URL" \ 
                    -F "dnsaction=modify" \ 
                    -F "records[0][line]=" \ 
                    -F "records[0][type]=A" \ 
                    -F "records[0][name]=" \ 
                    -F "records[0][ttl]=14440" \ 
                    -F "records[0][value]=$current_ip" \ 
                    "$MANAGED_URL" 2>&1) 

if ! echo "$updateResult" | grep -q "name=\"records\[0\]\[value\]\" value=\"$current_ip\""; then 
    echo "Update failed." 1>&2 
    exit 1 
fi 

echo "Logout" 
curl --compressed -k -b "$cookie_file" "$LOGOUT_URL" > /dev/null 2>&1 

exit 0

 

위에 스크립트 중에서 

 

freenom_email="main@address"  
freenom_passwd="pswd" 

 

이부분에 Freenom 의 ID 와 password 을 입력해 주세요 .

 

그리고 스크립트 중에 

freenom_domain_name="domain.name" 
freenom_domain_id="000000000" 

 

이부분을 수정 해줘야 하는데

freenom_domain_id 는 

 

여기에 있습니다. 

 

그리고 나서 스크립트를 저장 하여 완성해 줍니다. 

 

 

chmod +x update.sh

 

./update.sh

위와같은 결과로 업데이트가 완료 됩니다.

Comments