Freepage List

Profile

marsenary

marsenary

Keyword Search

▼キーワード検索

Archives

・2025年11月
・2025年10月
・2025年09月
・2025年08月
・2025年07月
2007年12月10日
XML
カテゴリ: UNIX Linux
* バグがあったので取りました。

ieserver.netのdip.jpでアカウントとってるんだけど、ルータ再起動したりしてipアドレスが変わったときに一々手動で更新するのが面倒かった。
AOCやるときとかAOCやるときとかAOC(ry

なんか適当にスクリプト作ればやれるっぽさげだったんでスクリプト作ってみた。


#!/opt/csw/bin/ruby
# ieserver.netのDDNS情報を更新する
# postするurlの形式
# https://ieserver.net/cgi-bin/dip.cgi?username=***&password=***&domain=dip.jp&updatehost=1

require 'net/http'


# ディレクトリ
WORKDIR="データを保存するディレクトリ"
# 以前のIPアドレスを保存するファイル
SAVFILE=WORKDIR+"oldip.dat"
# ログファイル
LOGFILE=WORKDIR+"log.dat"

# 各種データを入れるハッシュ
hash={}


# 各種情報の設定
hash["dst_url"]="https://ieserver.net/cgi-bin/dip.cgi"
hash["username"]="your account"

hash["domain"]="your domain"
# hash["fqdn"]= hash["username"] + "." + hash["domain"]

####
# ipアドレス更新時の処理
def renew( newip , hash)

open( SAVFILE, "w" ){|f|
f.puts newip
}
# DNS情報更新
data= "username=" + hash["username"] + "&password=" + hash["password"] + \
"&domain=" + hash["domain"] + "&updatehost=1"
# wgetを使います。 1.10.2 では下記のようにすることで更新が可能。
system("wget -q --no-check-certificate - '#{hash["dst_url"]}?#{data}'")
end
####

# 各種保存ファイルが無いときのために・・・
begin
open(SAVFILE){|f|}
open(LOGFILE){|f|}
rescue
# 各種保存用ファイルを作る。
# 作れないときの処理は省略
open(SAVFILE, "w"){|f|
f.puts "0.0.0.0"
}
open(LOGFILE, "w"){|f|
f.print "[" , Time.new.to_s, "] ", "Log file created. \n"
}
end


# 現在のIPアドレスをチェックする
# address chech url
# http://info.ddo.jp/remote_addr.php

Net::HTTP.start( "info.ddo.jp" ,80){ |http|
res = http.get("/remote_addr.php")
# curipにipが入る
res.body.scan(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/){|curip|
print "current ipaddress is " , curip , "\n"
open( SAVFILE , "r"){|o|
open( LOGFILE , "a"){|log|
res_output=""
# 前のipアドレスがoldipに入る
oldip=o.gets.chomp
# ipアドレスが変わっているとき
if oldip != curip then
renew(curip, hash)
res_output = "[" ,Time.new.to_s, "] " ,\
"renewal IP : #{oldip} => #{curip}\n"
else
res_output = "[" , Time.new.to_s, "] " , "No update needed.\n"
end
print res_output
log.print res_output
}
}
}
}


さて、作った後に 公式のページ 見てみると、なんかそれっぽいスクリプトが既に置いてあった件について。

自分のIP調べるurlも変更したほうがよさげ。

久しぶりにrubyで書いたんで、かなり時間掛かった。





お気に入りの記事を「いいね!」で応援しよう

Last updated  2007年12月11日 22時55分20秒
コメント(0) | コメントを書く
[UNIX Linux] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

Favorite Blog

かきぴぃの城 かきぴぃ6219さん
時の旅人 蒼色兎さん
ころしてでもうばい… nigresさん
水夢想 こーり水さん
瑠璃色のロザリオ ぴ・エロさん

Comments

marsenary @ Re:aoc2+hamachi(12/08) takapyonさん コメントありがとうござい…
takapyon@ aoc2+hamachi おーーこれがあれば面倒なポート開放しな…
marsenary @ Re:wwwwwwwwwwwwwwwwwwwww(06/10) そういえばそうだったなwwww
marsenary @ Re:wktk(06/20) +   +   ∧_∧  +  (0゜・∀・) …
サンキスト8598 @ wktk 全裸待機準備完了です!

Calendar


© Rakuten Group, Inc.
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: