Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
dns-benchmark-tool — 高速かつ包括的なDNSパフォーマンステスト(DNSSEC検証、DoH/DoT対応、エンタープライズ機能搭載) | Kitploit
ツール/GitHubGitHub/net-benchmark/dns-benchmark-tool
暗号化/復号化ツールネットワークマッピングネットワークセキュリティプライバシーDNS分析Archived
GitHubnet-benchmark/dns-benchmark-tool

dns-benchmark-tool

高速かつ包括的なDNSパフォーマンステスト(DNSSEC検証、DoH/DoT対応、エンタープライズ機能搭載)

リポジトリを見る
363123ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

⚠️ このプロジェクトは移転し、メンテナンスされていません。 後継をインストール:pip install net-benchmark リポジトリ:https://github.com/net-benchmark/net-benchmark 既存のすべてのコマンドとフラグは完全に互換性があります。


DNS Benchmark Tool

BuildTools の一部 - Network Performance Suite

DNSSEC検証、DoH/DoT対応、エンタープライズ機能を備えた高速かつ包括的なDNSパフォーマンステスト```bash pip install dns-benchmark-tool dns-benchmark benchmark --use-defaults --formats csv,excel

root@kitploit:~
> 🎉 **1,400以上のダウンロード · 600以上のアクティブユーザー**
> 🚀 **Webダッシュボードが公開されました!** [BuildToolsを無料で試す →](https://buildtools.net)

---

**リアルタイムトラッキング**

[![リアルタイムトラッキング](https://assets.kitploit.com/production/public/readmes/9801/abc3e3079146e364e8a291edc0e19bfcaf931bcd7a3db5d7a8d9daf5ed565e94.gif)](https://github.com/frankovo/dns-benchmark-tool)
*DNSクエリの動きを監視*

**リアルタイムトラッキング - Web UI**
[![リアルタイムトラッキング - Web UI](https://assets.kitploit.com/production/public/readmes/9801/02b1a1ab9d814fa4de537464def46493c36f96a5d0787a13c2d14eb07dfc2d11.gif)](https://github.com/frankovo/dns-benchmark-tool)
*DNSクエリをリアルタイムで監視し、メールアラートを送信*

</div>

## 🎉 新着情報 ![new](https://img.shields.io/pypi/v/dns-benchmark-tool.svg?color=brightgreen&label=new)

3つの強力なCLIコマンドと、DoH、DoT、DNSSECの完全サポートを追加しました:

- 🚀 **top** — リゾルバの速度と信頼性による簡単なランキング
- 📊 **compare** — 詳細な統計とエクスポートオプションによる並行ベンチマーク
- 🔄 **monitoring** — アラートとログによる継続的なパフォーマンス追跡
- 🔒 **DoH / DoT / DNSSEC** — 実際のレイテンシトレードオフデータによる暗号化DNSベンチマーク```bash
# Quick resolver ranking
dns-benchmark top

# Compare resolvers side-by-side
dns-benchmark compare Cloudflare Google Quad9 --show-details

# Run monitoring for 1 hour with alerts
dns-benchmark monitoring --use-defaults --formats csv,excel --interval 30 --duration 3600 \
  --alert-latency 150 --alert-failure-rate 5 --output monitor.log

# Encrypted DNS
dns-benchmark benchmark \
  --resolvers "Cloudflare,Google" \
  --domains "bing.com,google.com" \
  --doh \
  --doh-url "https://cloudflare-dns.com/dns-query,https://dns.google/dns-query" \
  --iterations 1 \
  --formats csv \
  --output ./doh_results_explicit_urls

dns-benchmark benchmark \
  --resolvers "Cloudflare,Quad9" \
  --domains "cloudflare.com,quad9.net" \
  --dot

📈 コミュニティのハイライト

  • ⭐ Stars: Hacker News への投稿後、7 → 110+ に増加
  • 📦 Downloads: 当初停滞していたが、その後 200+/日 に回復
  • 🐘 Mastodon: そちらでも共有したが、本格的な急増は HN から
  • 💬 Feedback: HN コミュニティからの建設的なフィードバックが、パッチ v0.3.0 → v0.3.1 に直接反映
  • 🚀 まとめ: Hacker News での露出が導入の勢いのきっかけとなった

CI Tests Publish to TestPyPI Publish to PyPI PyPI version PyPI - Python Version

License Coverage

Downloads GitHub stars GitHub forks Issues Last commit Main branch protected

目次

  • DNS Benchmark Tool
    • BuildTools - Network Performance Suite の一部
    • 🎉 新機能
    • 📈 コミュニティのハイライト
    • 目次
    • 🎯 なぜこのツールか?
      • 問題点
      • 解決策
      • こんな方に最適
    • クイックスタート
      • インストール
      • 初めてのベンチマーク実行
      • 結果の表示
    • ⚡ コマンド一覧
    • ✨ 主な機能
      • 🚀 パフォーマンス
      • 🔒 セキュリティとプライバシー
      • 📊 分析とエクスポート
      • 🏢 エンタープライズ機能
      • 🌐 クロスプラットフォーム
    • 🔒 セキュリティと暗号化DNS
    • 🔧 高度な機能
    • 💼 ユースケース
      • 🔧 開発者向け:APIパフォーマンスの最適化
      • 🛡️ DevOps/SRE向け:移行前の検証
      • 🏠 セルフホスター向け:Pi-holeのパフォーマンス証明
      • 📊 ネットワーク管理者向け:自動ヘルスチェック
      • 🔐 プライバシー重視者向け:暗号化DNSのテスト
    • 📦 インストールとセットアップ
      • 要件
      • PyPIからのインストール
      • ソースからのインストール
      • インストールの確認
      • 初回実行
    • 📖 使用例
      • 基本使用法
      • 高度な使用法
    • リゾルバーとドメインのインライン入力対応
      • 新機能
      • 後方互換性

🎯 なぜこのツールか?

DNS解決は、ネットワークパフォーマンスの隠れたボトルネックであることがよくあります。遅いリゾルバーは、すべてのリクエストに数百ミリ秒を追加する可能性があります。

問題点

  • ⏱️ 隠れたボトルネック: DNSはリクエストごとに300ms以上追加する可能性があります
  • 🤷 未知のパフォーマンス: ほとんどの開発者はDNSをテストしたことがありません
  • 🌍 場所が重要: 「最速」のリゾルバーはあなたの場所に依存します
  • 🔒 セキュリティはさまざま: DNSSEC、DoH、DoTのサポートは大きく異なります

解決策

dns-benchmark-tool は以下を支援します:

  • 🔍 最速の DNSリゾルバーをあなたの場所で見つける
  • 📊 実際のデータを取得 - P95、P99、ジッター、一貫性スコア
  • 🛡️ セキュリティを検証 - 組み込みのDNSSEC検証
  • 🚀 大規模にテスト - 数秒で100以上の同時クエリ

こんな方に最適

  • ✅ 開発者 APIパフォーマンスの最適化
  • ✅ DevOps/SRE リゾルバーSLAの検証
  • ✅ セルフホスター Pi-hole/UnboundとパブリックDNSの比較
  • ✅ ネットワーク管理者 コンプライアンスチェックの実行

クイックスタート

インストール```bash

pip install dns-benchmark-tool

root@kitploit:~
### 最初のベンチマークを実行する```bash
# Test default resolvers against popular domains
dns-benchmark benchmark --use-defaults --formats csv,excel

結果を表示

結果は自動的に ./benchmark_results/ に保存され、以下が含まれます:

  • 統計情報を含むサマリーCSV
  • 詳細な生データ
  • オプションのPDF/Excelレポート

以上です! 10個のドメインに対して5つのDNSリゾルバのベンチマークを実行しました。


⚡ コマンド一覧

Find your fastest resolver right now

dns-benchmark top --limit 5

Compare the big three

dns-benchmark compare Cloudflare Google Quad9 --show-details

Monitor with DoT and alerts for 1 hour

dns-benchmark monitoring --use-defaults --dot
--interval 30 --duration 3600
--alert-latency 150 --output monitor.log

root@kitploit:~
---

## ✨ 主な機能

### 🚀 パフォーマンス

- **非同期クエリ** - 100以上のリゾルバを同時にテスト
- **複数回の反復** - 精度向上のためにベンチマークを複数回実行
- **統計分析** - 平均、中央値、P95、P99、ジッタ、一貫性
- **キャッシュ制御** - DNSキャッシュの有無でテスト

### 🔒 セキュリティとプライバシー

- **DNSSEC検証** - 暗号化された信頼チェーンを検証
- **DNS-over-HTTPS (DoH)** - 暗号化DNSベンチマーク
- **DNS-over-TLS (DoT)** - セキュアなトランスポートテスト
- **DNS-over-QUIC (DoQ)** - 実験的なQUICサポート

### 📊 分析とエクスポート

- **複数フォーマット** - CSV、Excel、PDF、JSON
- **ビジュアルレポート** - チャートとグラフ
- **ドメイン統計** - ドメインごとのパフォーマンス分析
- **エラー内訳** - 問題のあるリゾルバの特定

### 🏢 エンタープライズ機能

- **TSIG認証** - セキュアなエンタープライスクエリ
- **ゾーン転送** - AXFR/IXFR検証
- **動的更新** - DNS書き込み操作のテスト
- **コンプライアンスレポート** - 監査に対応したドキュメント

### 🌐 クロスプラットフォーム

- **Linux、macOS、Windows** - どこでも動作
- **CI/CD対応** - JSON出力、終了コード
- **IDNAサポート** - 国際化ドメイン名
- **自動検出** - Windows WMI DNSディスカバリ

---

## 🔒 セキュリティと暗号化DNS

3つのプロトコルが完全サポートされています。それぞれレイテンシコストを追加しながらプライバシーを提供します。

| プロトコル | フラグ | 一般的なオーバーヘッド | 使用時 |
|---|---|---|---|
| プレーンUDP | *(デフォルト)* | ベースライン | レイテンシベンチマーク |
| DNS-over-HTTPS | `--doh` | +50~200ms | プライバシー、ファイアウォール回避 |
| DNS-over-TLS | `--dot` | +200~500ms(コールド)、約50ms(ウォーム) | 暗号化トランスポート |
| DNSSEC | `--dnssec-validate` | +30~100ms | リゾルバの整合性検証 |

> ⚠️ **トレードオフ**
> - DoHとDoTは、リゾルバごとの最初のクエリにTLSハンドシェイクのオーバーヘッドを追加します。測定前に `--warmup-fast` を使用してこれを吸収してください。
> - `--dnssec-validate` はRRSIGレコードを要求し、ADフラグを強制します。一般的なドメインのうちDNSSECで署名されているのは約33%のみです。署名されていないドメインでは `DNSSEC_FAILED` が返されることがあります。このフラグありとなしのレイテンシ数値は**直接比較できません**。
> - モバイル/ホットスポットでの結果は、有線イーサネットと比較して2~5倍のバラつきを示します。`--iterations 5` を使用し、平均ではなく中央値レイテンシを比較してください。```bash
# DoH benchmark
dns-benchmark benchmark \
  --resolvers "Cloudflare,Google" \
  --domains "cloudflare.com,google.com" \
  --doh --warmup-fast

# custom resolvers — must supply urls 1:1, order matters, or it fails early
dns-benchmark benchmark \
  --resolvers "Cloudflare,Google" \
  --domains "bing.com,google.com" \
  --doh \
  --doh-url "https://cloudflare-dns.com/dns-query,https://dns.google/dns-query" \
  --iterations 1 \
  --formats csv \
  --output ./doh_results_explicit_urls

# DoT with DNSSEC on signed domains
dns-benchmark benchmark \
  --resolvers "Cloudflare,Quad9" \
  --domains "cloudflare.com,quad9.net" \
  --dot \
  --dnssec-validate

# DOH rank top resolvers
dns-benchmark top --doh --limit 5

# DOT rank top resolvers
dns-benchmark top --dot --metric reliability --limit 5

# Compare DoH resolvers
dns-benchmark compare Cloudflare Google --doh --iterations 3

# Monitor with DoT
dns-benchmark monitoring --use-defaults --dot \
  --interval 60 --alert-latency 300

# DoH + DNSSEC enforced + export
dns-benchmark benchmark --use-defaults --doh --dnssec-validate --formats csv,excel

# DoT + DNSSEC enforced + multiple iterations
dns-benchmark benchmark \
  --resolvers "Cloudflare,Quad9,Google" \
  --domains "cloudflare.com,quad9.net,google.com" \
  --dot \
  --dnssec-validate \
  --iterations 5 \
  --formats excel

# DoH + custom urls + monitoring
dns-benchmark monitoring \
  --resolvers "Cloudflare,Google" \
  --doh \
  --doh-url "https://cloudflare-dns.com/dns-query,https://dns.google/dns-query" \
  --interval 30 --duration 7200

初期の失敗例 — これらはクエリ実行直前に失敗します:```bash

--doh and --dot are mutually exclusive

dns-benchmark benchmark --use-defaults --doh --dot

ERROR: --doh and --dot are mutually exclusive.

--doh-url count must match --resolvers count

dns-benchmark benchmark --resolvers "Cloudflare,Google" --doh
--doh-url "https://cloudflare-dns.com/dns-query"

ERROR: --doh-url has 1 URL(s) but --resolvers has 2 resolver(s). Counts must match.

Custom IP with --doh requires --doh-url

dns-benchmark benchmark --resolvers "192.168.1.1" --doh

ERROR: --doh requires a DoH URL for: 192.168.1.1. Use --doh-url to supply them explicitly.

root@kitploit:~
## 🔧 高度な機能

---
> ⚠️ これらのフラグは**可視性のために文書化されています**が、まだ実装されていません。  
> これらは今後の高度な機能を表しています。

- `--zone-transfer` → AXFR/IXFR ゾーン転送テスト *(近日公開予定)*
- `--tsig` → TSIG認証クエリ *(近日公開予定)*
- `--idna` → 国際化ドメイン名サポート *(近日公開予定)*

---

<details>
<summary><b>🚀 パフォーマンスと並行性機能</b></summary>

<br>

- **dnspythonによる非同期I/O** - 100以上のリゾルバを同時にテスト
- **Trioフレームワークサポート** - 高並行非同期操作
- **設定可能な並行性** - 最大同時クエリ数の制御
- **リトライロジック** - 失敗したクエリに対する指数バックオフ
- **キャッシュシミュレーション** - DNSキャッシュあり/なしでのテスト
- **複数回反復ベンチマーク** - 精度向上のための複数回テスト実行
- **ウォームアップフェーズ** - テスト前にDNSキャッシュを事前ウォームアップ
- **統計分析** - 平均、中央値、P95、P99、ジッター、一貫性スコア

**例:**```bash
dns-benchmark benchmark \
  --max-concurrent 200 \
  --iterations 5 \
  --timeout 3.0 \
  --warmup
🔒 セキュリティとプライバシーの機能
  • DNSSEC validation - 暗号化信頼チェーンを検証
  • DNS-over-HTTPS (DoH) - HTTPS経由の暗号化DNSベンチマーク
  • DNS-over-TLS (DoT) - 安全なトランスポート層テスト
  • DNS-over-QUIC (DoQ) - 実験的なQUICプロトコルサポート
  • TSIG authentication - エンタープライズDNS向けトランザクション署名
  • EDNS0 support - 拡張DNS機能と大規模ペイロード

例:```bash

Test DoH resolvers

dns-benchmark benchmark
--doh
--resolvers doh-providers.json
--dnssec-validate

root@kitploit:~
</details>

<details>
<summary><b>🏢 エンタープライズ&移行機能</b></summary>

<br>

- **ゾーン転送(AXFR/IXFR)** - 完全ゾーン転送および増分ゾーン転送の検証
- **ダイナミックDNS更新** - DNS書き込み操作と更新のテスト
- **EDNS0サポート** - 拡張DNSオプション、クライアントサブネット、大規模ペイロード
- **Windows WMI統合** - アクティブなシステムDNS設定の自動検出
- **コンプライアンスレポート** - 監査対応のPDF/Excelレポートを生成
- **SLA検証** - 稼働率とパフォーマンスのしきい値を追跡

**例:**```bash
# Validate DNS migration
dns-benchmark benchmark \
  --resolvers old-provider.json,new-provider.json \
  --zone-transfer \ # coming soon
  --output migration-report/ \
  --formats pdf,excel
📊 分析・レポート機能
  • ドメイン別統計 - ドメインごとのパフォーマンス分析
  • レコードタイプ別統計 - A, AAAA, MX, TXT などの比較
  • エラーの内訳 - エラータイプの分類とカウント
  • 比較マトリックス - リゾルバの横並び比較
  • 傾向分析 - 経時パフォーマンス(複数回実行時)
  • 基準別ベスト - レイテンシ・信頼性・一貫性に基づく最適なリゾルバの検出

例:```bash

Detailed analysis

dns-benchmark benchmark
--use-defaults
--formats csv,excel
--domain-stats
--record-type-stats
--error-breakdown
--formats csv,excel,pdf

root@kitploit:~
</details>

<details>
<summary><b>🌐 国際化と互換性</b></summary>

<br>

- **IDNA対応** - 国際化ドメイン名 (IDN)
- **複数のレコードタイプ** - A, AAAA, MX, TXT, CNAME, NS, SOA, PTR, SRV, CAA
- **クロスプラットフォーム** - Linux, macOS, Windows (ネイティブサポート)
- **CI/CD統合** - JSON出力、適切な終了コード、サイレントモード
- **カスタムリゾルバ** - JSONから読み込み、独自のDNSサーバーをテスト
- **カスタムドメイン** - 特定のドメインリストに対してテスト

**例:**```bash
# Test internationalized domains
dns-benchmark benchmark \
  --domains international-domains.txt \
  --record-types A,AAAA,MX \
  --resolvers custom-resolvers.json

💡 ほとんどのユーザーは基本機能のみを必要とします。 これらの高度な機能は、必要なときに利用できます。


💼 ユースケース

🔧 開発者向け: APIパフォーマンスの最適化```bash

Find fastest DNS for your API endpoints

dns-benchmark benchmark
--domains api.myapp.com,cdn.myapp.com
--record-types A,AAAA
--resolvers production.json
--iterations 10

root@kitploit:~
**結果:** APIレイテンシを100〜300ms削減

---

### 🛡️ DevOps/SRE向け:移行前に検証```bash
# Test new DNS provider before switching
dns-benchmark benchmark \
  --resolvers current-dns.json,new-dns.json \
  --use-defaults \
  --dnssec-validate \
  --output migration-report/ \
  --formats csv,excel

結果: 移行前にパフォーマンスとセキュリティを確認する


🏠 セルフホスター向け: Pi-hole のパフォーマンスを証明する```bash

Compare Pi-hole against public resolvers

dns-benchmark compare
--resolvers pihole.local,1.1.1.1,8.8.8.8,9.9.9.9
--domains common-sites.txt
--rounds 10

root@kitploit:~
**結果:** データ駆動型の証明:セルフホストDNSが高速であること(またはそうでないこと)

---

### 📊 ネットワーク管理者向け:自動ヘルスチェック```bash
# Add to crontab for monthly reports
0 0 1 * * dns-benchmark benchmark \
  --use-defaults \
  --output /var/reports/dns/ \
  --formats excel,csv \
  --domain-stats \
  --error-breakdown

結果: コンプライアンスとSLAレポートの自動化


🔐 プライバシー擁護者の皆様へ:暗号化DNSのテスト```bash

Benchmark privacy-focused DoH/DoT resolvers

dns-benchmark benchmark
--doh
--resolvers privacy-resolvers.json
--domains sensitive-sites.txt
--dnssec-validate

root@kitploit:~
**結果:** プライバシーを犠牲にせず最速の暗号化DNSを見つける

---

## 📦 インストールとセットアップ

### 必要条件

- Python 3.9+
- pip package manager

### PyPIからインストール```bash
pip install dns-benchmark-tool

ソースからインストール```bash

git clone https://github.com/frankovo/dns-benchmark-tool.git cd dns-benchmark-tool pip install -e .

root@kitploit:~
### インストールの確認```bash
dns-benchmark --version
dns-benchmark --help

最初の実行```bash

Test with defaults (recommended for first time)

dns-benchmark benchmark --use-defaults --formats csv,excel

root@kitploit:~
---

## 📖 使用例

### 基本的な使い方```bash
# Basic test with progress bars
dns-benchmark benchmark --use-defaults --formats csv,excel

# Basic test without progress bars
dns-benchmark benchmark --use-defaults --formats csv,excel --quiet

# Test with custom resolvers and domains
dns-benchmark benchmark --resolvers data/resolvers.json --domains data/domains.txt

# Quick test with only CSV output
dns-benchmark benchmark --use-defaults --formats csv

高度な使い方```bash

Export a machine-readable bundle

dns-benchmark benchmark --use-defaults --json --output ./results

Test specific record types

dns-benchmark benchmark --use-defaults --formats csv,excel --record-types A,AAAA,MX

Custom output location and formats

dns-benchmark benchmark
--use-defaults
--output ./my-results
--formats csv,excel

Include detailed statistics

dns-benchmark benchmark
--use-defaults
--formats csv,excel
--record-type-stats
--error-breakdown

High concurrency with retries

dns-benchmark benchmark
--use-defaults
--formats csv,excel
--max-concurrent 200
--timeout 3.0
--retries 3

Website migration planning

dns-benchmark benchmark
--resolvers data/global_resolvers.json
--domains data/migration_domains.txt
--formats excel,pdf
--output ./migration_analysis

DNS provider selection

dns-benchmark benchmark
--resolvers data/provider_candidates.json
--domains data/business_domains.txt
--formats csv,excel
--output ./provider_selection

Network troubleshooting

dns-benchmark benchmark
--resolvers "192.168.1.1,1.1.1.1,8.8.8.8"
--domains "problematic-domain.com,working-domain.com"
--timeout 10
--retries 3
--formats csv
--output ./troubleshooting

Security assessment

dns-benchmark benchmark
--resolvers data/security_resolvers.json
--domains data/security_test_domains.txt
--formats pdf
--output ./security_assessment

Performance monitoring

dns-benchmark benchmark
--use-defaults
--formats csv
--quiet
--output /var/log/dns_benchmark/$(date +%Y%m%d_%H%M%S)

New top commands

Run a basic benchmark (default: rank by latency)

dns-benchmark top

→ Tests all resolvers with sample domains, ranks by latency

Limit the number of resolvers shown

dns-benchmark top --limit 5

→ Shows only the top 5 resolvers

Rank by success rate

dns-benchmark top --metric success

→ Ranks resolvers by highest success rate

Rank by reliability (combined score: success rate + latency)

dns-benchmark top --metric reliability

→ Uses weighted score to rank resolvers

Filter resolvers by category

dns-benchmark top --category privacy dns-benchmark top --category family dns-benchmark top --category security

→ Tests only resolvers in the specified category

Use a custom domain list

dns-benchmark top --domains domains.txt

→ Loads domains from a text file instead of built-in sample list

Specify DNS record types

dns-benchmark top --record-types A,AAAA,MX

→ Queries multiple record types (comma-separated)

Adjust timeout and concurrency

dns-benchmark top --timeout 3.0 --max-concurrent 50

→ Sets query timeout to 3 seconds and limits concurrency to 50

Export results to JSON

dns-benchmark top --output results.json

→ Saves results in JSON format

Export results to CSV

dns-benchmark top --output results.csv

→ Saves results in CSV format

Export results to TXT

dns-benchmark top --output results.txt

→ Saves results in plain text format

Quiet mode (no progress bar, CI/CD friendly)

dns-benchmark top --quiet

→ Suppresses progress output

Example combined usage

dns-benchmark top --limit 10 --metric reliability --category privacy --output top_resolvers.csv

→ Benchmarks privacy resolvers, ranks by reliability, shows top 10, exports to CSV

New compare commaands

Comparison of resolvers by name

dns-benchmark compare Cloudflare Google Quad9

^ Compares Cloudflare, Google, and Quad9 resolvers using default domains and record type A

Basic compare resolvers by IP address

dns-benchmark compare 1.1.1.1 8.8.8.8 9.9.9.9

^ Directly specify resolver IPs instead of names

Increase iterations for more stable results

dns-benchmark compare "Cloudflare" "Google" --iterations 5

^ Runs 5 rounds of queries per resolver/domain/record type

Use a custom domain list from file

dns-benchmark compare Cloudflare Google -d ./data/domains.txt

^ Loads domains from domains.txt instead of sample domains

Query multiple record types

dns-benchmark compare Cloudflare Google -t A,AAAA,MX

^ Tests A, AAAA, and MX records for each domain

Adjust timeout and concurrency

dns-benchmark compare Cloudflare Google --timeout 3.0 --max-concurrent 200

^ Sets query timeout to 3 seconds and allows 200 concurrent queries

Export results to JSON

dns-benchmark compare Cloudflare Google -o results.json

^ Saves comparison summary to results.json

Export results to CSV

dns-benchmark compare Cloudflare Google -o results.csv

^ Saves comparison summary to results.csv (via CSVExporter)

Suppress progress output

dns-benchmark compare Cloudflare Google --quiet

^ Runs silently, only prints final results

Show detailed per-domain breakdown

dns-benchmark compare Cloudflare Google --show-details

^ Prints average latency and success counts per domain for each resolver

New monitoring commands

Start monitoring with default resolvers and sample domains

dns-benchmark monitoring --use-defaults

^ Runs indefinitely, checking every 60s, using built-in resolvers and 5 sample domains

Monitor with a custom resolver list from JSON

dns-benchmark monitoring -r resolvers.json --use-defaults

^ Loads resolvers from resolvers.json, domains from defaults

Monitor with a custom domain list

dns-benchmark monitoring -d domains.txt --use-defaults

^ Uses default resolvers, but domains are loaded from domains.txt

Change monitoring interval to 30 seconds

dns-benchmark monitoring --use-defaults --interval 30

^ Runs checks every 30 seconds instead of 60

Run monitoring for a fixed duration (e.g., 1 hour = 3600 seconds)

dns-benchmark monitoring --use-defaults --duration 3600

^ Stops automatically after 1 hour

Set stricter alert thresholds

dns-benchmark monitoring --use-defaults --alert-latency 150 --alert-failure-rate 5

^ Alerts if latency >150ms or failure rate >5%

Save monitoring results to a log file

dns-benchmark monitoring --use-defaults --output monitor.log

^ Appends results and alerts to monitor.log

Combine options: custom resolvers, domains, interval, duration, and logging

dns-benchmark monitoring -r resolvers.json -d domains.txt -i 45 --duration 1800 -o monitor.log

^ Monitors resolvers from resolvers.json against domains.txt every 45s, for 30 minutes, logging to monitor.log

Run monitoring for 1 hour with alerts

dns-benchmark monitoring --use-defaults --interval 30 --duration 3600
--alert-latency 150 --alert-failure-rate 5 --output monitor.log

root@kitploit:~
---

⚠️ **新しいコマンドに関する注意:** クエリ成功がないリゾルバはランキングから除外され、`Avg Latency: N/A` と表示されます。

---

## リゾルバとドメインのインライン入力サポート

このパッチでは、`--resolvers` および `--domains` フラグにカンマ区切りのインライン値を完全にサポートし、issue [#39](https://github.com/frankovo/dns-benchmark-tool/issues/39) を修正し、既存のワークフローを壊さずにCLIの使いやすさを向上させます。

### 新しい機能

1. **インラインリゾルバ**: `--resolvers "1.1.1.1,8.8.8.8,9.9.9.9"`
2. **インラインドメイン**: `--domains "google.com,github.com"`
3. **単一値**: `--resolvers "1.1.1.1"` または `--domains "google.com"`
4. **名前付きリゾルバ**: `--resolvers "cloudflare,google,quad9"`
5. **混合入力**: `--resolvers "1.1.1.1,cloudflare,8.8.8.8"`

### 後方互換性

- 既存のファイルベースの設定はすべて引き続き動作します
- CLIに破壊的な変更はありません
- ファイル検出がインライン解析より優先されます

### 使用例

#### 以前(ファイルのみ動作)```bash
dns-benchmark benchmark \
    --resolvers data/resolvers.json \
    --domains data/domains.txt

その後(両方とも動作します)```bash

Inline (New)

dns-benchmark benchmark
--resolvers "1.1.1.1,8.8.8.8,9.9.9.9"
--domains "google.com,github.com"
--timeout 10
--retries 3
--formats csv
--output ./troubleshooting

Files (STILL WORKS)

dns-benchmark benchmark
--resolvers data/resolvers.json
--domains data/domains.txt
--formats csv

root@kitploit:~
#### 名前付きリゾルバ```bash
# Named resolvers
dns-benchmark benchmark \
    --resolvers "Cloudflare,Google,Quad9" \
    --domains "google.com,github.com" \
    --timeout 10 \
    --retries 3 \
    --formats csv \
    --output ./troubleshooting_named

混合入力```bash

Mixed input

dns-benchmark benchmark
--resolvers "1.1.1.1,Cloudflare,8.8.8.8"
--domains "google.com,github.com"
--timeout 10
--retries 3
--formats csv
--output ./troubleshooting_mixed

root@kitploit:~
#### シングル```bash

# Single
dns-benchmark benchmark \
    --resolvers "1.1.1.1" \
    --domains "google.com" \
    --timeout 10 \
    --retries 3 \
    --formats csv \
    --output ./troubleshooting

🔧 ユーティリティ

Risolver 管理```bash

Show default resolvers and domains

dns-benchmark list-defaults

Browse all available resolvers

dns-benchmark list-resolvers

Browse with detailed information

dns-benchmark list-resolvers --details

Filter by category

dns-benchmark list-resolvers --category security dns-benchmark list-resolvers --category privacy dns-benchmark list-resolvers --category family

Export resolvers to different formats

dns-benchmark list-resolvers --format csv dns-benchmark list-resolvers --format json

root@kitploit:~
### ドメイン管理```bash
# List all test domains
dns-benchmark list-domains

# Show domains by category
dns-benchmark list-domains --category tech
dns-benchmark list-domains --category ecommerce
dns-benchmark list-domains --category social

# Limit results
dns-benchmark list-domains --count 10
dns-benchmark list-domains --category news --count 5

# Export domain list
dns-benchmark list-domains --format csv
dns-benchmark list-domains --format json

カテゴリ概要```bash

View all available categories

dns-benchmark list-categories

root@kitploit:~
### 構成管理```bash
# Generate sample configuration
dns-benchmark generate-config --output sample_config.yaml

# Category-specific configurations
dns-benchmark generate-config --category security --output security_test.yaml
dns-benchmark generate-config --category family --output family_protection.yaml
dns-benchmark generate-config --category performance --output performance_test.yaml

# Custom configuration for specific use case
dns-benchmark generate-config --category privacy --output privacy_audit.yaml

完全な使用ガイド

クイックパフォーマンステスト```bash

Basic test with progress bars

dns-benchmark benchmark --use-defaults

Quick test with only CSV output

dns-benchmark benchmark --use-defaults --formats csv --quiet

Test specific record types

dns-benchmark benchmark --use-defaults --record-types A,AAAA,MX

root@kitploit:~
アドオン分析フラグ:```bash
# Include domain and record-type analytics and error breakdown
dns-benchmark benchmark --use-defaults \
  --domain-stats --record-type-stats --error-breakdown

JSON エクスポート:```bash

Export a machine-readable bundle

dns-benchmark benchmark --use-defaults --json --output ./results

root@kitploit:~
#### ネットワーク管理者```bash
# Compare internal vs external DNS
dns-benchmark benchmark \
  --resolvers "192.168.1.1,1.1.1.1,8.8.8.8,9.9.9.9" \
  --domains "internal.company.com,google.com,github.com,api.service.com" \
  --formats excel,pdf \
  --timeout 3 \
  --max-concurrent 50 \
  --output ./network_audit

# Test DNS failover scenarios
dns-benchmark benchmark \
  --resolvers data/primary_resolvers.json \
  --domains data/business_critical_domains.txt \
  --record-types A,AAAA \
  --retries 3 \
  --formats csv,excel \
  --output ./failover_test

ISP & ネットワーク事業者```bash

Comprehensive ISP resolver comparison

dns-benchmark benchmark
--resolvers data/isp_resolvers.json
--domains data/popular_domains.txt
--timeout 5
--max-concurrent 100
--formats csv,excel,pdf
--output ./isp_performance_analysis

Regional performance testing

dns-benchmark benchmark
--resolvers data/regional_resolvers.json
--domains data/regional_domains.txt
--formats excel
--quiet
--output ./regional_analysis

root@kitploit:~
#### デベロッパー & DevOps```bash
# Test application dependencies
dns-benchmark benchmark \
  --resolvers "1.1.1.1,8.8.8.8" \
  --domains "api.github.com,registry.npmjs.org,pypi.org,docker.io,aws.amazon.com" \
  --formats csv \
  --quiet \
  --output ./app_dependencies

# CI/CD integration test
dns-benchmark benchmark \
  --resolvers data/ci_resolvers.json \
  --domains data/ci_domains.txt \
  --timeout 2 \
  --formats csv \
  --quiet

セキュリティ監査人```bash

Security-focused resolver testing

dns-benchmark benchmark
--resolvers data/security_resolvers.json
--domains data/malware_test_domains.txt
--formats csv,pdf
--output ./security_audit

Privacy-focused testing

dns-benchmark benchmark
--resolvers data/privacy_resolvers.json
--domains data/tracking_domains.txt
--formats excel
--output ./privacy_analysis

root@kitploit:~
#### エンタープライズIT```bash
# Corporate network assessment
dns-benchmark benchmark \
  --resolvers data/enterprise_resolvers.json \
  --domains data/corporate_domains.txt \
  --record-types A,AAAA,MX,TXT,SRV \
  --timeout 10 \
  --max-concurrent 25 \
  --retries 2 \
  --formats csv,excel,pdf \
  --output ./enterprise_dns_audit

# Multi-location testing
dns-benchmark benchmark \
  --resolvers data/global_resolvers.json \
  --domains data/international_domains.txt \
  --formats excel \
  --output ./global_performance

🔍 最終パッチ向けREADME調整

新しいCLIオプション


⚡ CLIコマンド

DNS Benchmark Toolは、異なるワークフローに特化した3つのコマンドを備えています:

🚀 Top

速度と信頼性でリゾルバを迅速にランク付けします。```bash

Rank resolvers quickly

dns-benchmark top

Use custom domain list

dns-benchmark top -d domains.txt

Export results to JSON

dns-benchmark top -o results.json

root@kitploit:~
---

### 📊 比較

詳細な統計データを用いてリゾルバーを横並びでベンチマーク比較します。```bash
# Compare Cloudflare, Google, and Quad9
dns-benchmark compare Cloudflare Google Quad9

# Compare by IP addresses
dns-benchmark compare 1.1.1.1 8.8.8.8 9.9.9.9

# Show detailed per-domain breakdown
dns-benchmark compare Cloudflare Google --show-details

# Export results to CSV
dns-benchmark compare Cloudflare Google -o results.csv

🔄 監視

アラートを使用してリゾルバのパフォーマンスを継続的に監視します。```bash

Monitor default resolvers continuously (every 60s)

dns-benchmark monitoring --use-defaults

Monitor with custom resolvers and domains

dns-benchmark monitoring -r resolvers.json -d domains.txt

Run monitoring for 1 hour with alerts

dns-benchmark monitoring --use-defaults --interval 30 --duration 3600
--alert-latency 150 --alert-failure-rate 5 --output monitor.log

root@kitploit:~
### 🌟 コマンドショーケース

| コマンド      | 目的 | 典型的なユースケース | 主要オプション | 出力 |
|--------------|---------|------------------|-------------|--------|
| **top**      | リゾルバを速度と信頼性で簡単にランク付け | 現在最適なリゾルバを素早く確認 | `--domains`, `--record-types`, `--output` | レイテンシと成功率でソートされたリゾルバ一覧 |
| **compare**  | 特定リゾルバの横並び比較 | 選択したリゾルバ/ドメインの詳細ベンチマーク | `--domains`, `--record-types`, `--iterations`, `--output`, `--show-details` | レイテンシ、成功率、ドメイン別内訳の表 |
| **monitoring** | アラート付き継続監視 | リゾルバ性能の経時変化をリアルタイム追跡 | `--interval`, `--duration`, `--alert-latency`, `--alert-failure-rate`, `--output`, `--use-defaults` | ライブステータス表示、アラート、オプションのログファイル |

---

## 📊 分析機能の強化

- **反復回数**: 複数回の反復実行時に表示。  
- **キャッシュヒット**: キャッシュから処理されたクエリ数を表示(`--use-cache` 有効時)。  
- **失敗追跡**: 繰り返しエラーが発生したリゾルバをカウントし、`get_failed_resolvers()` で確認可能。  
- **キャッシュ統計**: `get_cache_stats()` で利用可能。キャッシュエントリ数とキャッシュの有効状態を表示。  
- **ウォームアップ結果**: ウォームアップクエリは生データで `iteration=0` とマークされ、分析時に簡単にフィルタリング可能。  

出力例のサマリー:```markdown

=== BENCHMARK SUMMARY ===
Total queries: 150
Successful: 140 (93.33%)
Average latency: 212.45 ms
Median latency: 198.12 ms
Fastest resolver: Cloudflare
Slowest resolver: Quad9
Iterations: 3
Cache hits: 40 (26.7%)

⚡ ベストプラクティス

⚙️ 設定ファイル

リゾルバ JSON 形式```json

{ "resolvers": [ { "name": "Cloudflare", "ip": "1.1.1.1", "ipv6": "2606:4700:4700::1111" }, { "name": "Google DNS", "ip": "8.8.8.8", "ipv6": "2001:4860:4860::8888" } ] }

root@kitploit:~
### ドメインテキストファイル形式```txt
# Popular websites
google.com
github.com
stackoverflow.com

# Corporate domains
microsoft.com
apple.com
amazon.com

# CDN and cloud
cloudflare.com
aws.amazon.com

出力形式

CSV出力

  • 生データ: タイムスタンプとメタデータを含む個々のクエリ結果
  • サマリー統計: リゾルバごとの集計メトリクス
  • ドメイン統計: ドメインごとのメトリクス(--domain-stats使用時)
  • レコードタイプ統計: レコードタイプごとのメトリクス(--record-type-stats使用時)
  • エラー内訳: エラータイプごとの件数(--error-breakdown使用時)

Excelレポート

  • 生データシート: 書式設定付きの全クエリ結果
  • リゾルバサマリー: 条件付き書式を適用した包括的な統計
  • ドメイン統計: ドメインごとのパフォーマンス(オプション)
  • レコードタイプ統計: レコードタイプごとのパフォーマンス(オプション)
  • エラー内訳: 集計されたエラー件数(オプション)
  • パフォーマンス分析: グラフと比較分析

PDFレポート

  • エグゼクティブサマリー: 主要な発見事項と推奨事項
  • パフォーマンスチャート: レイテンシ比較、オプションで成功率チャート
  • リゾルバランキング: 平均レイテンシ順
  • 詳細分析: パーセンタイルを含む技術的な深堀り

📄 PDF出力(オプション)

デフォルトでは、本ツールはCSVおよびExcel出力をサポートしています。
PDF出力には追加の依存関係weasyprintが必要であり、一部のプラットフォームでの実行時問題を避けるため自動的にはインストールされません。

PDFサポート付きでインストール```bash

pip install dns-benchmark-tool[pdf]

root@kitploit:~
#### 使い方

インストール後、CLI経由でPDF出力をリクエストできます:```bash
dns-benchmark --use-defaults --formats pdf --output ./results

もし weasyprint がインストールされておらず、PDF出力をリクエストすると、CLIは次のように表示されます:```bash [-] Error during benchmark: PDF export requires 'weasyprint'. Install with: pip install dns-benchmark-tool[pdf]

root@kitploit:~
---

### ⚠️ WeasyPrintのセットアップ (PDFエクスポート用)

DNS Benchmark Toolは、PDFレポートを生成するために**WeasyPrint**を使用します。  
PDFエクスポートを希望する場合は、Pythonパッケージに加えて、追加のシステムライブラリが必要です。

#### 🛠 Linux (Debian/Ubuntu)```bash
sudo apt install python3-pip libpango-1.0-0 libpangoft2-1.0-0 \
  libharfbuzz-subset0 libjpeg-dev libopenjp2-7-dev libffi-dev

🛠 macOS(Homebrew)```bash

brew install pango cairo libffi gdk-pixbuf jpeg openjpeg harfbuzz

root@kitploit:~
#### 🛠 Windows

以下のいずれかの方法で GTK+ ライブラリをインストールします:

- **MSYS2**: [MSYS2 をダウンロード](https://www.msys2.org/)、そして実行:  ```bash
  pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-libffi
  • GTK+ 64ビットインストーラー: GTK+ランタイムをダウンロードして、インストーラーを実行してください。

インストール後、ターミナルを再起動します。


✅ インストールの確認

システムライブラリをインストールした後、Pythonエクストラをインストールしてください。```bash pip install dns-benchmark-tool[pdf]

root@kitploit:~
次に実行してください:```bash
dns-benchmark --use-defaults --formats pdf --output ./results

JSON export

  • 以下を含む機械可読バンドル:
    • 全体統計
    • リゾルバ統計
    • 生のクエリ結果
    • ドメイン統計
    • レコードタイプ統計
    • エラー内訳

サンプル設定の生成```bash

dns-benchmark generate-config
--category privacy
--output my-config.yaml

root@kitploit:~
## パフォーマンス最適化```bash
# Large-scale testing (1000+ queries)
dns-benchmark benchmark \
  --resolvers data/many_resolvers.json \
  --domains data/many_domains.txt \
  --max-concurrent 50 \
  --timeout 3 \
  --quiet \
  --formats csv

# Unstable networks
dns-benchmark benchmark \
  --resolvers data/backup_resolvers.json \
  --domains data/critical_domains.txt \
  --timeout 10 \
  --retries 3 \
  --max-concurrent 10

# Quick diagnostics
dns-benchmark benchmark \
  --resolvers "1.1.1.1,8.8.8.8" \
  --domains "google.com,cloudflare.com" \
  --formats csv \
  --quiet \
  --timeout 2

トラブルシューティング```bash

Command not found

pip install -e . python -m dns_benchmark.cli --help

PDF generation fails (Ubuntu/Debian)

sudo apt-get install libcairo2 libpango-1.0-0 libpangocairo-1.0-0
libgdk-pixbuf2.0-0 libffi-dev shared-mime-info

Or skip PDF

dns-benchmark benchmark --use-defaults --formats csv,excel

Network timeouts

dns-benchmark benchmark --use-defaults --timeout 10 --retries 3 dns-benchmark benchmark --use-defaults --max-concurrent 25

root@kitploit:~
### デバッグモード```bash
# Verbose run
python -m dns_benchmark.cli benchmark --use-defaults --formats csv

# Minimal configuration
dns-benchmark benchmark --resolvers "1.1.1.1" --domains "google.com" --formats csv

自動化 & CI

Cronジョブ```bash

Daily monitoring

0 2 * * * /usr/local/bin/dns-benchmark benchmark --use-defaults --formats csv --quiet --output /var/log/dns_benchmark/daily_$(date +%Y%m%d)

Time-based variability (every 6 hours)

0 */6 * * * /usr/local/bin/dns-benchmark benchmark --use-defaults --formats csv --quiet --output /var/log/dns_benchmark/$(date +%Y%m%d_%H)

root@kitploit:~
### GitHub Actionsの例```yaml
- name: DNS Performance Test
  run: |
    pip install dnspython pandas click tqdm colorama
    dns-benchmark benchmark \
      --resolvers "1.1.1.1,8.8.8.8" \
      --domains "api.service.com,database.service.com" \
      --formats csv \
      --quiet

スクリーンショット

画像を docs/screenshots/ に配置します:

  • docs/screenshots/cli_run.png
  • docs/screenshots/excel_report.png
  • docs/screenshots/pdf_summary.png
  • docs/screenshots/pdf_charts.png
  • docs/screenshots/excel_charts.png
  • docs/screenshots/real_time_monitoring.png

1. CLIベンチマーク実行

CLIベンチマーク実行

2. Excelレポート出力

Excelレポート出力

3. PDFエグゼクティブサマリー

PDFエグゼクティブサマリー

4. PDFグラフ

PDFグラフ

5. Excelグラフ

Excelグラフ

6. リアルタイム監視

リアルタイム監視


ヘルプの入手```bash

dns-benchmark --help dns-benchmark benchmark --help dns-benchmark list-resolvers --help dns-benchmark list-domains --help dns-benchmark list-categories --help dns-benchmark generate-config --help

root@kitploit:~
一般的なシナリオ:```bash
# I'm new — where to start?
dns-benchmark list-defaults
dns-benchmark benchmark --use-defaults

# Test specific resolvers
dns-benchmark list-resolvers --category security
dns-benchmark benchmark --resolvers data/security_resolvers.json --use-defaults

# Generate a management report
dns-benchmark benchmark --use-defaults --formats excel,pdf \
  --domain-stats --record-type-stats --error-breakdown --json \
  --output ./management_report

リリースワークフロー

  • 前提条件

    • GPGキーが設定されていること: make gpg-check を実行して確認してください。
    • ブランチ保護: mainブランチは署名付きコミットとCI合格が必要です。
    • CI公開: 署名付きタグ vX.Y.Z に一致する場合にトリガーされます。
  • リリース準備 (署名付き)

    • パッチ/マイナー/メジャーバンプ:

      root@kitploit:~
      make release-patch      # or: make release-minor / make release-major
      
      • バージョンを更新します。
      • release/X.Y.Z を作成または再利用します。
      • 署名付きコミットを作成し、ブランチをプッシュします。
    • PRを開く: release/X.Y.Z から main へPRを作成し、CI合格後にマージします。

  • タグ付けと公開

    • 署名タグを作成してプッシュ:

      root@kitploit:~
      make release-tag VERSION=X.Y.Z
      
      • mainに署名付きタグ vX.Y.Z を付けます。
      • CIがPyPIに公開します。
  • 手動での代替方法

    • ブランチを作成し、署名付きコミット:

      root@kitploit:~
      git checkout -b release/manually-update-version-based-on-release-pattern
      git add .
      git commit -S -m "Release release/$NEXT_VERSION"
      git push origin release/$NEXT_VERSION
      

🌐 BuildTools Webダッシュボード — 公開中

CLIは永久に無料です。 Webダッシュボードは buildtools.net で利用可能です。

現在公開中の機能 (無料 + Pro)

  • 📊 DNSベンチマーク — 視覚的な結果と履歴、このCLIエンジンを搭載
  • 🔔 DNSモニタリング — レコード変更時のリアルタイムアラート
  • 🆓 無料ティア — すぐに開始可能、クレジットカード不要
  • 💼 Pro 月額€14 — 長期保存と優先サポート

Q2 2026 に登場予定

  • ⚡ HTTPベンチマーク — API応答時間とCDNパフォーマンスの測定
  • 🔒 SSLモニター — 問題発生前の証明書期限アラート

Q3 2026 に登場予定

  • 🌍 マルチリージョンテスト — 複数ロケーションからの同時テスト

→ buildtools.net で無料登録


🛣️ ロードマップ

✅ 現在のリリース (CLI版)

  • DNSリゾルバーのベンチマーク、比較、監視
  • DoH, DoT, DNSSECサポート (本リリースの新機能)
  • CSV, Excel, PDF, JSONへのエクスポート

✅ Webダッシュボード (公開中)

  • 視覚的な履歴付きDNSベンチマーク
  • リアルタイムアラート付きDNSモニタリング
  • 無料ティア + Pro 月額€14
  • buildtools.net

🔜 Q2 2026 に登場予定

  • HTTPベンチマーク
  • SSLモニター

Q3 2026

  • マルチリージョンテスト

🤝 コントリビューション

コントリビューション大歓迎! 以下の方法でご協力いただけます:

コントリビュート方法

  • 🐛 バグ報告 - Issueを開く
  • 💡 機能提案 - ディスカッションを開始
  • 📝 ドキュメント改善 - README、例、チュートリアル
  • 🔧 PRを提出 - バグ修正、機能、テスト
  • ⭐ リポジトリにスター - 他の人がこのツールを見つけるのを助ける
  • 📢 広める - ツイート、ブログ、共有

🛠 開発とMakefileコマンド

このプロジェクトには Makefile が含まれており、インストール、テスト、コード品質チェックを簡素化します。```makefile .PHONY: install install-dev uninstall mypy black isort flake8 cov test clean cli-test

🔧 Install package (runtime only)

install: pip install .

🔧 Install package with dev extras (pytest, mypy, flake8, black, isort, etc.)

install-dev: pip install .[dev]

🔧 Uninstall package

uninstall: pip uninstall -y dns-benchmark-tool
dnspython pandas aiohttp click pyfiglet colorama Jinja2 weasyprint openpyxl pyyaml tqdm matplotlib
mypy black flake8 autopep8 pytest coverage isort

mypy: mypy .

isort: isort .

black: black .

flake8: flake8 src tests --ignore=E126,E501,E712,F405,F403,E266,W503 --max-line-length=88 --extend-ignore=E203

cov: coverage erase coverage run --source=src -m pytest -vv -s coverage html

test: mypy black isort flake8 cov

clean: rm -rf pycache .pytest_cache htmlcov .coverage coverage.xml
build dist *.egg-info .eggs benchmark_results cli-test:

Run only the CLI smoke tests marked with @pytest.mark.cli

pytest -vv -s -m cli tests/test_cli_commands.py

root@kitploit:~
### 一般的な使用方法

- **ランタイムのみをインストール**  ```bash
  make install
  • 開発依存関係を含めてインストール ```bash make install-dev
    root@kitploit:~
  • 型チェック、リンティング、フォーマット、テストを実行する ```bash make test
    root@kitploit:~
  • CLIスモークテストのみを実行 ```bash make cli-test
    root@kitploit:~
  • ビルド/テストのアーティファクトをクリーンアップ ```bash make clean
    root@kitploit:~

コードガイドライン

  • PEP 8 スタイルガイドに従う
  • 新機能のテストを追加する
  • ドキュメントを更新する
  • PRは焦点を絞り、アトミックに保つ

❓ よくある質問

なぜISPのDNSは最速ではないのか?

ローカルISPのDNSはキャッシュの利点があることが多いが、以下の点が欠けている可能性がある:

  • グローバルエニーキャストネットワーク(遠方のドメインでは遅い)
  • DNSSEC検証
  • プライバシー機能(DoH/DoT)
  • 信頼性の保証

両方をテストし、自分の優先事項に基づいて決めよう!

DNSのベンチマークはどのくらいの頻度で行うべきか?
  • 一度だけ:DNSプロバイダーを選ぶとき
  • 毎月:ネットワークの健全性チェック
  • 移行前:プロバイダーを切り替えるとき
  • 問題発生後:パフォーマンスのトラブルシューティング
自分のDNSサーバーをテストできますか?

はい!カスタムリゾルバーのJSONファイルに追加するだけです:```json { "resolvers": [ {"name": "My DNS", "ip": "192.168.1.1"} ] }

root@kitploit:~
</details>

<details>
<summary><b>CLI版とホスト版の違いは何ですか?</b></summary>

**CLI(永久無料):**

- あなたのロケーションからテストを実行
- 結果をローカルに保存
- オープンソース — ダッシュボードと同じエンジン

**Webダッシュボード(buildtools.net で公開中):**

- 視覚的なベンチマーク結果と履歴
- リアルタイムアラート付きDNS監視
- 無料ティアあり、Proは月額€14
- 2026年第3四半期にマルチリージョンテストを予定
</details>

<details>
<summary><b>このツールは本番環境で安全に使用できますか?</b></summary>

はい!このツールはDNSルックアップ(読み取り操作)のみを実行します。以下のことは行いません:
- DNSレコードの変更
- 攻撃の実行
- 外部サーバーへのデータ送信(ホスト機能を有効にしない限り)

すべてのテストは、どのリゾルバーも日常的に処理する標準的なDNSクエリです。

</details>

<details>
<summary><b>実行ごとに結果が異なるのはなぜですか?</b></summary>

DNSパフォーマンスは以下の要因で変動します:
- ネットワーク状態
- DNSキャッシュ(リゾルバーおよび中間)
- サーバー負荷
- 地理的ルーティングの変更

より一貫した結果を得るには、複数回の反復(`--iterations 5`)を実行してください。

</details>

---

## 🔗 リンクとサポート

### 公式

- **Website**: [buildtools.net](https://buildtools.net)
- **PyPI**: [dns-benchmark-tool](https://pypi.org/project/dns-benchmark-tool/)
- **GitHub**: [frankovo/dns-benchmark-tool](https://github.com/frankovo/dns-benchmark-tool)

### コミュニティ

- **Discussions**: [GitHub Discussions](https://github.com/frankovo/dns-benchmark-tool/discussions)
- **Issues**: [Bug Reports](https://github.com/frankovo/dns-benchmark-tool/issues)

### 統計

- **ダウンロード数**: 今週1,400以上
- **アクティブユーザー**: 600以上

---

## ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細は[LICENSE](https://github.com/net-benchmark/dns-benchmark-tool/blob/HEAD/LICENSE)ファイルをご覧ください。

---

<div align="center">

**❤️を込めて [@frankovo](https://github.com/frankovo) が開発**

[BuildTools](https://buildtools.net) - ネットワークパフォーマンススイートの一部

[⭐ GitHubでスターをつける](https://github.com/frankovo/dns-benchmark-tool) • [📦 PyPIからインストール](https://pypi.org/project/dns-benchmark-tool/)

</div>
ツールをダウンロード
  • 使用例
    • 以前(ファイルのみ対応)
    • 以後(両方対応)
    • 名前付きリゾルバー
    • 混合入力
    • 単一
  • 🔧 ユーティリティ
    • リゾルバー管理
    • ドメイン管理
    • カテゴリ概要
    • 設定管理
  • 完全な使用ガイド
    • クイックパフォーマンステスト
      • ネットワーク管理者
      • ISP・ネットワーク事業者
      • 開発者・DevOps
      • セキュリティ監査担当者
      • エンタープライズIT
  • 🔍 最終パッチのためのREADME調整
    • 新しいCLIオプション
  • ⚡ CLIコマンド
    • 🚀 トップ
    • 📊 比較
    • 🔄 モニタリング
    • 🌟 コマンドショーケース
  • 📊 分析機能の強化
  • ⚡ ベストプラクティス
  • ⚙️ 設定ファイル
    • リゾルバーJSON形式
    • ドメインテキストファイル形式
  • 出力形式
    • CSV出力
    • Excelレポート
    • PDFレポート
    • 📄 オプションのPDFエクスポート
      • PDF対応版のインストール
      • 使用方法
    • ⚠️ WeasyPrintのセットアップ(PDFエクスポート用)
      • 🛠 Linux (Debian/Ubuntu)
      • 🛠 macOS (Homebrew)
      • 🛠 Windows
      • ✅ インストールの確認
    • JSONエクスポート
    • サンプル設定の生成
  • パフォーマンス最適化
  • トラブルシューティング
    • デバッグモード
  • 自動化とCI
    • Cronジョブ
    • GitHub Actionsの例
  • スクリーンショット
    • 1. CLIベンチマーク実行
    • 2. Excelレポート出力
    • 3. PDFエグゼクティブサマリー
    • 4. PDFチャート
    • 5. Excelチャート
    • 6. リアルタイムモニタリング
  • ヘルプ
  • リリースワークフロー
  • 🌐 BuildTools Webダッシュボード — 公開中
    • 現在の提供内容(無料 + Pro)
    • 2026年第2四半期予定
    • 2026年第3四半期予定
  • 🛣️ ロードマップ
    • ✅ 現行リリース(CLI版)
    • ✅ Webダッシュボード(公開中)
    • 🔜 2026年第2四半期
      • 2026年第3四半期
  • 🤝 コントリビューション
    • 貢献方法
    • 🛠 開発とMakefileコマンド
    • 一般的な使用方法
    • コードガイドライン
  • ❓ FAQ
  • 🔗 リンクとサポート
    • 公式
    • コミュニティ
    • 統計
  • ライセンス
  • コマンド機能簡単な例
    benchmarkエクスポート機能付きの完全なDNSベンチマークdns-benchmark benchmark --use-defaults
    top全てのリゾルバを速度でランク付けdns-benchmark top --limit 5
    compareリゾルバの横並び比較dns-benchmark compare Cloudflare Google Quad9
    monitoringアラート付きの継続的モニタリングdns-benchmark monitoring --use-defaults
    オプション説明例
    --iterations, -iフルベンチマークループをN回実行しますdns-benchmark benchmark --use-defaults -i 3
    --use-cacheキャッシュ結果をイテレーション間で再利用できるようにしますdns-benchmark benchmark --use-defaults -i 3 --use-cache
    --warmup完全なウォームアップを実行します(すべてのリゾルバ × ドメイン × レコードタイプ)dns-benchmark benchmark --use-defaults --warmup
    --warmup-fast軽量なウォームアップを実行します(リゾルバごとに1回のプローブ)dns-benchmark benchmark --use-defaults --warmup-fast
    --include-chartsPDF/Excelレポートにチャートやグラフを埋め込み、パフォーマンスを視覚的に分析しますdns-benchmark benchmark --use-defaults --formats pdf,excel --include-charts
    モード推奨フラグ目的
    クイック実行--iterations 1 --timeout 1 --retries 0 --warmup-fast高速フィードバック、最小限のリトライ、軽量ウォームアップ。簡単な確認に最適。
    詳細実行--iterations 3 --use-cache --warmup --timeout 5 --retries 2複数回のパス、キャッシュ有効、完全ウォームアップ。詳細なベンチマークに最適。
    デバッグモード--iterations 1 --timeout 10 --retries 0 --quiet長いタイムアウト、リトライなし、最小出力。リゾルバの問題診断に有用。
    バランス実行--iterations 2 --use-cache --warmup-fast --timeout 2 --retries 1中間的な設定:適度な速度、一部リトライ、キャッシュ有効、クイックウォームアップ。
  • PRを開いてmainにマージします。

  • その後タグ付け:

    root@kitploit:~
    make release-tag VERSION=$NEXT_VERSION
    
  • 注意事項

    • 署名コミット: git commit -S ...
    • 署名タグ: git tag -s vX.Y.Z -m "Release vX.Y.Z"
    • バージョンソース: pyproject.toml および src/dns_benchmark/__init__.py