http://www.dyndns.org - 서비스 홈페이지
유동IP 에 도메인이름을 부여할 수 있게 해 줌. 학교에서 집에 있는 컴퓨터에 접속하기 위해서 사용함.
내 컴퓨터의 IP 주소가 변경되면 그 사실을 알려서 내 정보를 갱신해야 한다.
아래는 Alcatel Speed Touch Pro 외장형 ADSL 모뎀에 접속해서 내 IP 를 가져오는 스크립트
#! /bin/bash
TEMP=$HOME/.send_my_ip
LOG=$TEMP/log.txt
LOG_DDCLIENT=$TEMP/log_ddclient.txt
# ping 을 날려서 모뎀을 한 번 동작시킨다. (접속이 끊겨 있는 경우를 대비)
ping -c 3 147.46.80.1 > /dev/null
# 기존의 라우터 정보를 백업
mv -f $TEMP/ip_new $TEMP/ip_old
# 새 라우터 정보를 다운
rm -f $TEMP/index.html*
( cd $TEMP ; wget http://10.0.0.138/cgi/router/index.html )
# index.html 로부터 현재의 IP 주소 추출
grep "21" $TEMP/index.html | sed 2,\$d | sed s/^M//g | sed s/" <TD ALIGN=CENTER >"//g | sed s/"<\/TD>"//g > $TEMP/ip_new
# 라우터 정보 비교
diff $TEMP/ip_new $TEMP/ip_old > $TEMP/ip_diff
if [ -s $TEMP/ip_diff ]
then
# 메일로 보낸다
cat $TEMP/ip_diff | mail -s `cat $TEMP/ip_new` raymundo@kebi.com
# IP가 바뀌었을 때에는 dyndns 갱신
# /usr/local/sbin/ddup --ip `cat $TEMP/ip_new` --host 내가등록한호스트명.dyndns.org
$TEMP/ddclient -daemon=0 -verbose -debug -noquiet -ip `cat $TEMP/ip_new` > $LOG_DDCLIENT
# log 남기기.. 사용하지 않음
# cp -f $LOCAL/ip_log_new.txt $LOCAL/ip_log_old.txt
# if !(grep "0.0.0.0" $LOCAL/ip_log_new.txt)
# then
echo ""
echo -n "`date` : " >> $LOG
echo -n " from [" >> $LOG
cat $TEMP/ip_old | tr -d '\n' >> $LOG
echo -n "] to [" >> $LOG
cat $TEMP/ip_new | tr -d '\n' >> $LOG
echo "]" >> $LOG
# fi
fi
rm -f $TEMP/index.html*
정보 갱신을 위해서 ddup 라는 유틸리티를 사용했는데, 이게 요즘 제대로 동작하지 않는다. 그래서 ddclient 라는 것으로 변경. ([여기]에서 자신의 OS 에 맞는 정보갱신 클라이언트를 다운받을 수 있음)
ddclient.tar.gz
아래는 ddclient.conf 화일의 일종
use=ip
protocol=dyndns2 # default protocol
server=members.dyndns.org:8245 # default server (bypassing proxies)
login=내dyndns계정
password=내dyndns암호
server=members.dyndns.org:8245, \
protocol=dyndns2 \
내가등록한호스트명.dyndns.org
use=web 으로 할 경우, 자신의 IP 주소를 알려주는 웹사이트에 접속해서 IP 를 얻어올 수 있으니, 위의 쉘스크립트를 따로 쓸 필요가 없지만... 어찌된 일인지 내 환경에서는 올바른 IP 주소를 알아내지 못했다.
AnygateGW300A 인터넷 공유기를 샀더니만 제작사 측에서 이런 서비스를 제공한다. (와우~) 더 이상 DynDNS 를 쓸 필요가 없어짐.
컴퓨터분류