DNSで使用しているプロトコルを教えてください。 (83レス)
上下前次1-新
8: 1 02/03/28 21:44 ID:TQLnYYGJ(1) AAS
>7
ありがとう御座います。出来ました。解決です。
あと、resolverで検索をしていたので見つからなかったみたいです。
素直にdomainで検索をすれば良かったです(DNSじゃ出てこないし)。
9(1): ぱおぱお 02/03/29 19:01 ID:O6tCsMJO(1) AAS
残念。(>ε<)
Winsockにはresolverが実装されていない。
ところで,SMTPの方のエラー処理や再送は上手くいった?
なかなか繋がらんMXも多いからな。
10(2): 1 02/03/30 01:32 ID:n1+koA0a(1) AAS
>9
SMTPの方が先に組みあがっていたので、大丈夫です。
反応が遅いところもあるようですが、今のところ問題なしです。
遅いサーバーに対しては、1つのメールに対し複数のコネクションを張るようにしてあります。
これって、嫌がられそうだけど(笑。
>5
ふと思ったんですが、gethostbyaddr, getaddrbyhostでMX引けましたっけ?
単に25ポートで繋いでも無理だったので、不可能なような気が...。
もし引けるようでしたら、やり方を教えてください。お願いします。
11: 虎 02/04/01 11:32 ID:??? AAS
>>10 すこし時間をくだされ。知識の裏取っておく。
12(1): 虎 [age] 02/04/02 10:54 ID:??? AAS
>>10
手持ちのソケット本が出払ってた(Kよ返してくれ!)ので
ソケット関数で引けたかどうかは未確認……
引けないってことはないように思うんだが……
UDPで直接送受信する仕組みができてたら、DNSメッセージを
直接やりとりするのも可能か。
説明すると結構繁雑なので、オーム社「マスタリングTCP/IP 応用編」
の第15章5節を参照してください。
13(1): 1 02/04/03 15:33 ID:AV3ZEb5C(1) AAS
>12
> オーム社「マスタリングTCP/IP 応用編」
かなり読んでます。ハイ。でも、意外と内容が薄い...。
RFCの日本語訳が見つからなかったので、英語をヒタスラ読んでますが。
DNSの応答処理が意外と面倒な事になってます。
14(1): 虎 02/04/03 15:43 ID:??? AAS
>>13
DNSの応答処理って
DNSから送られてきた応答パケット(とは限らないが)の
受信と解釈のことでしょうか。
オライリーのDNS&BINDの14章2節に、DNS問い合わせと
応答の解析を行うサンプルプログラム(C)が載ってたので
参考になるのでは。
俺はCはよく使わないのでよくわかりませんが(w
14.3にはPerlのNetオブジェクトを使った例もある。
15(1): 02/04/04 11:38 ID:??? AAS
ここホントに初級ネット板か???
16: 02/04/07 04:35 ID:??? AAS
>>15
初級ネットは偽名じゃ。
名前のせいで勘違いして紛れ込んでくる初心者が多いのだが致し方ないことなのだ。
17(1): 1 02/04/07 19:29 ID:RVpV9bj7(1) AAS
>>14
> 応答の解析を行うサンプルプログラム
そんなのが欲しいです...。
やっとこさ、IPまで辿り着ける状態になりましたです。
> Perl
は使った事が無いので、全くわかりません。
C/C++かアセンブラかVBしか出来ません。
18(1): 虎 02/04/08 11:26 ID:??? AAS
>>17 素直にオライリー買いましょう。\5000也。
19: 02/06/12 16:31 ID:??? AAS
>>18
第4版は5200円だね。
20: age2ch.pl 0.03.23 [age] 02/08/18 21:11 ID:??? AAS
>>1 itteyoshi
21: いえろ ◆bT6c9WIwLg 02/10/09 16:59 ID:??? AAS
誘導したのは良いが・・・ 結論が出てなかったのか!!
つーか 本買えで終わってるとは・・・
22: いえろ ◆bT6c9WIwLg 02/10/09 17:56 ID:??? AAS
なんか質問スレで呼ばれてる? まぁいいか。
RFCを読んでUDPでパケット投げてみました。
ものすごい勢いで誰かが質問に答えますPart30
2chスレ:hack
に記載されていたパケットダンプは一部分ですので問題の
個所は理解できません。
23: いえろ ◆bT6c9WIwLg 02/10/09 18:14 ID:??? AAS
とりあえず投げるパケットの組み立て。
問い合わせパケット
00 1F :データ長
--ここからヘッダ--
?? ?? :16ビットの適当なID(乱数でOK)
00 00 :QR=0 OPCODE=0 AA=0 TC=0 RD=0 RA=0 Z=0 RCODE=0
00 01 :質問の数(今回は1個なので1)
00 00 :回答の数=当然0
00 00 :NSレコードの数=0
00 00 :追加部の数=0
省8
24: いえろ ◆bT6c9WIwLg 02/10/09 18:37 ID:??? AAS
回答パケット(オフセットが重要なのでオフセット付きです)
※オフセットは10進数です
-002: 00 9E :データ長 (オフセットマイナスなので注意!)
--ここからヘッダ--
+000: ?? ?? :送ったID(一致を確認すること)
+002: ?? ?? :回答時のフラグ(サーバによって変わります)
+004: 00 01 :質問の数=質問パケットと一致
+006: 00 01 :回答の数=1個
+008: 00 02 :NSレコードの数=2
+010: 00 04 :追加部の数=4
省8
25(1): いえろ ◆bT6c9WIwLg 02/10/09 18:37 ID:??? AAS
--ここから回答部--
+031: C0 0C :Name=Offset+0x0C(12)=0xC000+0x0Cの意味(圧縮)
+033: 00 0F :TYPE=15=MXレコード
+035: 00 01 :CLASS=1=IN=インターネット
+037: 00 01 48 23 :TTL=0x00014823
+041: 00 0A :リソースデータ長
--ここからリソースデータ--
+043: 05 6F 72 69 67 31 :ラベル長(05)と'orig1'のキャラクタ
+049: C0 0F : Offset+0x0F(15)(圧縮)
ただし、これはヘッダからのオフセット
省1
26(1): 虎 02/10/09 18:50 ID:??? AAS
一生懸命回答書いてたら遅れを取った。
27(1): いえろ ◆bT6c9WIwLg 02/10/09 18:59 ID:??? AAS
DNSの回答はいちいちFQDN返してると大変なので一部の文字列を
共有しています。(これをRFCでは圧縮と書いてるみたい)
上記例では +031に名前(ホスト名)を書いても良いのですが、ここに
記載されるべき名前はリソースデータの名前(MX問い合わせの回答)と
一致しますので「そこまでの相対アドレス」を書きます。
このように相対アドレスを書く場合は0xC000+ポインタ値を使います。
0xC0で大丈夫な理由は、1つのラベルは63文字以内と定められている
からです。
ポインタはこの値の次を0としますので31+12=43で+043からのラベルと
言うことになります。つまり'orig1'です。
省6
上下前次1-新書関写板覧索設栞歴
あと 56 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.016s