1

メールでのスパム フィルタリングの作業を開始しました。そのために、DNS に blasklisted IP を照会するモジュールを作成する必要があります。初心者として、DNS についてよく読んで、C++ を使用してクエリを作成する方法を教えてください。. 色々と調べてみましたが、良いソースが見つかりませんでした。前もって感謝します

4

2 に答える 2

1

初心者として、基本的に 1 つの関数について知っておく必要がありますgethostbyname

8.8.4.4次に、に対してチェックしたい場合はzen.spamhaus.org、呼び出します

gethostbyname ("4.4.8.8.zen.spamhaus.org")

(逆のオクテットに注意してください)。

これが非 NULL を返す場合、IP がリストされます。

これは非常に原始的な方法であり、多くの欠点がありますが、機能するので、より高度な方法に進む前に試してみてください。

于 2012-01-22T06:44:12.683 に答える
0

十分気をつける。DNS は、悪用可能なコードにとって非常に有益な場所です。脆弱な DNS ソフトウェアを作成するのは非常に簡単です。

ほとんどの場合、低速または応答しない DNS サーバーがアプリケーションを無期限に停止させないように、非同期リゾルバーを使用する必要があります。単一の特定のメールの配信を停止させたいだけです。Ubuntu 用にパッケージ化された少数のライブラリがあります。

libadns1-dev - Asynchronous-capable DNS client library and utilities
libc-ares-dev - library for asyncronous name resolves (development files)
libc-ares2 - library for asyncronous name resolves
firedns - Runtime binaries for firedns, an asynch. dns resolver library
libares-dev - asynchronous dns resolver library
libares0 - asynchronous dns resolver library
libfiredns-dev - Development files for firedns, an asynch. dns resolver library
libfiredns0.9 - Runtime libraries for firedns, an asynch. dns resolver library
libfiredns-dev - Development files for firedns, an asynch. dns resolver library
libfiredns0.9 - Runtime libraries for firedns, an asynch. dns resolver library
libowfat-dev - A reimplementation of libdjb
libudns-dev - async-capable DNS stub resolver library, development files

私はこれらのどれも使用したことがないので、ここで推奨することはできません。ごめん。

ルックアップの結果をキャッシュするために、ローカルの再帰リゾルバーを実行したい場合があります。これにより、プログラミングに必要なインテリジェンスの量が減り、ソフトウェアを大幅に簡素化できます。pdns-recursor以前から愛用していて気に入りました。素晴らしいツール。

于 2012-01-22T06:25:16.430 に答える