0

現在、私のアプリケーションはcURLの下の Windows でc-ares非同期 DNS リゾルバー ライブラリを使用しており、他の Windows アプリとは動作が異なるとユーザーから苦情が寄せられています。ある特定のユーザーは、「他のアプリケーションが Microsoft DNS クライアントを使用している」と述べており、問題は発生していません。

cURL 自体には、スレッドで getaddrinfo() を使用する非同期 DNS 実装があります。私の推測では、「DNS クライアント」とそのホスト機能 (例: DnsQuery?) を使用するのと同等の動作になると思います。

そこで、Lazyweb の皆さん、getaddrinfo() の動作と Win32 API の実際の Dns* API を使用する動作との間に明確な違いがあるかどうかお尋ねします。

4

2 に答える 2

1

ソースを見ると、実際には、ホスト名をクエリするための dns プロトコルを実装しているようです (そして、getaddrinfo を直接呼び出していません)。WINS ルックアップのようなものを見逃すことを期待しています。名前を調べるために行う。

于 2009-09-02T18:39:05.157 に答える
0

Windows で DNS クエリを実行する最も簡単な方法は、DNSQuery (および派生関数、utf8、wbytes、ansi) を使用することです。非同期解決が必要でない限り、この場合は c-ares または他の同様の API を使用し続けることをお勧めします。

C-ares でカバーされていない WINS またはその他の Windows 固有の解像度 (DNS 仕様の一部ではない) についてはわかりません。例をいくつか挙げていただけると助かります。c-ares にも実装できるかもしれません。

于 2010-04-25T21:01:38.000 に答える