8

デフォルトですべてのネットワーク接続をブロック/許可し、特定のドメイン名 (google.com など) をホワイトリスト/ブラックリストに登録する Windows サービスを実装したいと考えています。

Windows Filtering Platform を見ましたが、ドメイン名でフィルタリングできず、正確な IP でのみフィルタリングできるようです。問題は、ドメイン名に対応する IP が時間の経過とともに変化する可能性があり、1 つのドメイン名に対して複数の IP が存在する可能性があることです。

ドメイン名でこのフィルタリングを行うにはどうすればよいですか?

4

2 に答える 2

3

DNS 名のみでフィルタリングする場合、IP アドレスを使用することで簡単にフィルタを回避できることに注意してください。そのため、IP アドレスによるフィルタリングはより堅牢になります。

リバース IP ルックアップを実行して、関連するドメイン名を取得できます。おそらく、リバース IP アドレス ルックアップ キャッシュを実装することをお勧めします。DNS TTL を超えた場合、キャッシュ内のエントリをフラッシュします。

ドメイン名のみに固執したい場合 (およびフィルタリングを実行する場所によっては)、winsock.dll をフックできます。SOでこれを参照してください。winsock フックはgethostbyname()、DNS 名を解決するフィルターやその他の API を使用します。

于 2016-03-24T00:43:13.600 に答える