Created
February 16, 2015 13:05
-
-
Save xtetsuji/a02647d1655de38bd1e1 to your computer and use it in GitHub Desktop.
"livedoor Domain" Dynamic DNS client and some tool.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl | |
# 2005/02/28 - 2014/02/16 | |
use strict; | |
use LWP::UserAgent; | |
use LWP::Simple qw(get); | |
my $VERBOSE = $ENV{VERBOSE} || $ENV{PS1}; | |
my $IP_ADDR_GET_URL = 'http://hpcgi3.nifty.com/almost-everywhere/remote_ip.cgi'; # IPアドレスを調べるURL | |
my $DDNS_UPDATE_HOSTNAME = 'tetsuji.jp'; # 設定: アップデートしたいドメイン名 | |
my $USERNAME = "username"; # 設定: ユーザ名 | |
my $PASSWORD = "password"; # 設定: パスワード | |
my $arg = shift; | |
my $ip; | |
if ( $arg =~ /^\d+\.\d+\.\d+\.\d+$/ ) { | |
$ip = $arg; | |
} else { | |
$ip = get($IP_ADDR_GET_URL); | |
chomp $ip; | |
if ( !$ip ) { | |
die "invalid IP recieved.\n"; | |
} | |
} | |
my $url = "http://domain.livedoor.com/webapp/dice/update?hostname=$DDNS_UPDATE_HOSTNAME"; | |
if ( $ip ) { | |
$url .= "&ip=$ip"; | |
} | |
my $ua = new LWP::UserAgent; | |
$ua->credentials( "domain.livedoor.com:80", "Anonymous", $USERNAME, $PASSWORD ); | |
my $req = new HTTP::Request( GET => $url ); | |
my $res = $ua->request($req); | |
if ( $res->is_success ) { | |
for ( split /\r?\n/, $res->content ) { | |
if ( /:/ ) { | |
chomp; | |
my ($key, $value) = split /:\s*/; | |
print "$key=$value\n" if $VERBOSE; | |
} | |
} | |
} else { | |
warn "request is failed\n"; | |
} | |
__END__ | |
MEMO: | |
ベーシック認証を利用して更新する場合 | |
登録済みホストのIPアドレスを定期的に自動更新する場合、HTTPクライアントから以下のURLにて更新ができます。 | |
http://domain.livedoor.com/webapp/dice/update?hostname=ホスト名&ip=お客様のIPアドレス | |
現在アクセスしている端末のIPアドレスを設定する場合、&ip以下の入力を省略することもできます。 | |
IPアドレスの更新が正常に完了した場合、以下の内容が表示されます。 | |
RESULT_CODE: 200 | |
MESSAGE: OK | |
HOSTNAME: ホスト名 | |
IP: IPアドレス | |
USER: ユーザーアカウント | |
NATやIPマスカレードを使用している場合など、詳細な設定方法につきましては、お使いのルータのマニュアル等をご参照ください。 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/local/bin/perl | |
print <<END_BODY; | |
Content-Type: text/plain | |
$ENV{REMOTE_ADDR} | |
END_BODY |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment