Perl、Yandex DNS API、およびD-Linkルーターを使用して動的DNSを数分で作成する方法に関する記事。
多くのD-Linkルーターは、組み込みのダイナミックDNS機能をサポートしています。
残念ながら、無料で利用できるのはexample.dlinkddns.comのようなドメインのみです。
Yandexの非常に便利な
DNS APIもあり
ます 。
この組み合わせを使用します。
まず、ドメインをYandexサービス(
pdd.yandex.ru/domains_add)に接続する必要があります。
次に、ドメインのトークンを取得します。これには、フォームのリンクをクリックする必要があります。
pddimp.yandex.ru/get_token.xml?domain_name=example-site.ru(example-site.ru-ドメイン名)。
「gjkgwrth34wjh45kj2th234jkht34234lkj5」のようなトークンを受け取りました。
次-フォームのリンクをたどってください:
pddimp.yandex.ru/nsapi/get_domain_records.xml?token=gjkgwrth34wjh45kj2th234jkht34234lkj5&domain=example-site.ruドメインのDNSゾーンレコードのリストを次のようなXML形式で取得します。
<page> <domains> <domain> <name>example-site.ru</name> <response> <record domain="example-site.ru" priority="" ttl="21600" subdomain="@" type="A" id="23232301">3.5.7.9</record> <record domain="www.example-site.ru" priority="" ttl="21600" subdomain="www" type="A" id="23232302">3.5.7.9</record> </response> </domain> <error>ok</error> </domains> </page>
この応答から、レコードタグのid属性が必要です。
これらすべてを使用して、perlスクリプトを記述してIPを更新できます。
use LWP::UserAgent; my $hostout = `host example.dlinkddns.com`; // if ($hostout =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/) { my $ip = "$1.$2.$3.$4";
/ etc / crontabのような行を書くだけです
* / 5 * * * * root perl /root/update_my_ip.pl
(5分ごとに更新する場合、update_my_ip.plはスクリプトの名前です)。