- PR -

dns書き換えについて

投稿者投稿内容
未記入
会議室デビュー日: 2003/12/16
投稿数: 3
投稿日時: 2003-12-16 15:36
dnsの書き換えモジュールの作成

$nsupdate
>update add (ドメイン名) TTL IN A (IPアドレス)//追加
>send //update要求
>quit //終了

上記のようなことをC言語を使って実現させたいのですが、
どのようにやればいいのか分からないので、知恵を貸していただきたいと
思います。よろしくお願いします。
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2003-12-16 16:03
ども。がると申します。

DNSのプログラムに何を使っているのかでかなり回答が異なると
思うので、何を使っているか、をかかれたほうがより有効回答が
増えると思います。

以下、BINDであることを想定して。
基本的には
・データファイルを書き換える
・namedに対してreloadを投げる
の2点で片付くと思います。
データファイルに書き込むのは単純なファイル操作なので省略。
namedへのreloadの投げかけは、単純にsystem(3)とかを使うのが
シンプルでよいのではないか、と。

ただ、このプログラム、非常に危険です。
よほど状況的に安全に作らないとクラックの対称になりやすいと
思うので、十分にお気をつけください。
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2003-12-16 19:23
がるがるさんとは別の、以下の仮定で考えて見ました。

要求が次のようだとすると:
・bind9のnsupdateコマンドを呼び出したい、あるいはそれと同じ機能を組みたい。
・プラットホームはLinuxかWindows

1. 「C言語から任意の実行ファイルを実行したいが手順がわからない」場合。
→ Linuxならsystemか、forkとexecを使います。
WindowsならCreateProcessを使います。(bindはWindows用もあるため念のため)

2. 「nsupdateと同じ動作をするものを作成したい」場合。
→ libbind (BIND resolver library) からこの機能(Dynamic DNS)を
使えるかもしれません。

3. 「nsupdateと同じ動作をするものを独自に作成したい」場合。
→ これはないですよね?

bind9のnsupdateについてはこちら:
http://www.atmarkit.co.jp/flinux/rensai/bind907/bind907a.html
bind9はこちら。
http://www.isc.org/products/BIND/bind9.html
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-12-16 19:30
nsupdate は実行後、独自コマンドの入力待ち状態になりますよね。
このコマンドは nsupdate への引数として直接実行する事は出来なかったはずです。

つまり nsupdate は、 fork & exec で実行できるが、その後の
update 〜 quit までを nsupdate に渡すにはどうすればいいか、という
質問かなあ、と思いました。

時に、これって可能なんでしょうか???

[修正]
スペルミス修正

[ メッセージ編集済み 編集者: でくのぼう 編集日時 2003-12-16 19:31 ]
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2003-12-16 20:24
引用:

でくのぼうさんの書き込み (2003-12-16 19:30) より:
nsupdate は実行後、独自コマンドの入力待ち状態になりますよね。
このコマンドは nsupdate への引数として直接実行する事は出来なかったはずです。

つまり nsupdate は、 fork & exec で実行できるが、その後の
update 〜 quit までを nsupdate に渡すにはどうすればいいか、という
質問かなあ、と思いました。

時に、これって可能なんでしょうか???


systemの代わりならpopen(3)/pclose(3)を、
fork&execならさらにpipe(2),dup2(2)を使えばできるかと。
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-12-16 20:28
なるほど可能なのですね。
勉強になります。

何か作ってみようかな。
未記入
会議室デビュー日: 2003/12/16
投稿数: 3
投稿日時: 2003-12-16 20:31
「bind9のnsupdateコマンドを呼び出したい、あるいはそれと同じ機能を組みたい」です。

もう少し詳しく教えていただけないでしょうか?
わたくし、プログラム等未熟なもので・・・。
すいません。
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-12-16 20:37
であれば、ちいにぃさんの回答に対してもう少し詳しく答えた方が・・・。
少なくとも1〜3の選択肢まで用意して頂いているんですから。

スキルアップ/キャリアアップ(JOB@IT)