'dyndns'에 해당되는 글 1건
2008/05/22 01:33
[프로그래밍]
tistory에는 주소를 han9kin.tistory.com이 아닌 다른 도메인 주소로 서비스될 수 있도록 하는 기능이 있다. 괜찮은 기능같아 보인다. 그래서, 사용해 보기로 마음을 먹었다.
애용하는 www.dyndns.com에 들어가서 도메인 하나를 얻었다. han9kin.doesntexist.com... 비록, han9kin.tistory.com보다 길기도 하고 유치하기도 하지만 사용해 볼란다.
문제는 www.dyndns.com의 무료 서비스는 한달에 한번씩 꼭 업데이트를 해야만 한다는 것이다. 요즘 인터넷 공유기들은 이런 기능 기본 제공한다. 하지만, 공유기에서 할 수 없는 것이 IP주소가 공유기 주소가 아니라 han9kin.tistory.com의 주소를 사용한다는 것이다.
ddclient라는 perl로 작성된 훌륭한 프로그램이 있지만, 설정파일에 암호가 노출되는 점등 마음에 안드는 점이 조금 있었다. 그래서, 아예 ruby로 간단하게 만들어 보게 되었다.
require 'net/http'
def dyndns_update(hostname, ip, account, password)
path = "/nic/update?system=dyndns&hostname=%s&myip=%s" % [hostname, ip]
req = Net::HTTP::Get.new(path)
req.basic_auth(account, password)
req.add_field("user-agent", "ddclient/ruby")
Net::HTTP.start("members.dyndns.org") { | http | http.request(req) }
end
hostname, ip주소, account, password를 넘겨주면 update해준다. 간단하다.
require 'resolv'
dyndns_update("han9kin.doesntexist.com",
Resolv.getaddress("han9kin.tistory.com"),
"XXXX",
"YYYY")
han9kin.tistory.com의 ip주소를 얻어와서 update해준다. 이제 적당히 account, password를 인자로 받아서 넘겨준다던지 하면 되겠다.
아.. 한달에 한번씩 이 스크립트를 돌려줘야 한단 말이지?
이 글은 스프링노트에서 작성되었습니다.


