Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/net-benchmark/dns-benchmark-tool
Outils de Chiffrement/DéchiffrementCartographie RéseauSécurité RéseauProtection de la Vie PrivéeAnalyse DNSArchived
GitHubnet-benchmark/dns-benchmark-tool

dns-benchmark-tool

Test de performance DNS rapide et complet avec validation DNSSEC, support DoH/DoT et fonctionnalités d'entreprise

Voir le dépôt
36312il y a 3 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

⚠️ ce projet a été déplacé et n'est plus maintenu. installez le successeur : pip install net-benchmark dépôt : https://github.com/net-benchmark/net-benchmark toutes les commandes et options existantes restent entièrement compatibles.


Outil de Benchmark DNS

Partie de BuildTools - Suite de Performance Réseau

Tests de performance DNS rapides et complets avec validation DNSSEC, support DoH/DoT et fonctionnalités entreprise```bash pip install dns-benchmark-tool dns-benchmark benchmark --use-defaults --formats csv,excel

root@kitploit:~
> 🎉 **1 400+ téléchargements · 600+ utilisateurs actifs**
> 🚀 **Le tableau de bord web est désormais en ligne !** [Essayez BuildTools gratuitement →](https://buildtools.net)

---

**Suivi en temps réel**

[![Suivi en temps réel](https://assets.kitploit.com/production/public/readmes/9801/abc3e3079146e364e8a291edc0e19bfcaf931bcd7a3db5d7a8d9daf5ed565e94.gif)](https://github.com/frankovo/dns-benchmark-tool)
*Observez les requêtes DNS en action*

**Suivi en temps réel - Interface Web**
[![Suivi en temps réel - Interface Web](https://assets.kitploit.com/production/public/readmes/9801/02b1a1ab9d814fa4de537464def46493c36f96a5d0787a13c2d14eb07dfc2d11.gif)](https://github.com/frankovo/dns-benchmark-tool)
*Surveillez les requêtes DNS en direct avec alertes par e-mail*

</div>

## 🎉 Quoi de neuf dans ![nouveau](https://img.shields.io/pypi/v/dns-benchmark-tool.svg?color=brightgreen&label=new)

Nous avons ajouté **trois puissantes commandes CLI** et la prise en charge complète de **DoH, DoT et DNSSEC** :

- 🚀 **top** — classement rapide des résolveurs par vitesse et fiabilité
- 📊 **compare** — analyse comparative côte à côte avec statistiques détaillées et options d'exportation
- 🔄 **monitoring** — suivi continu des performances avec alertes et journalisation
- 🔒 **DoH / DoT / DNSSEC** — analyse comparative DNS chiffrée avec données réelles de compromis de latence```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

📈 Community Highlights

  • ⭐ Stars : Passé de 7 à 110+ après publication sur Hacker News
  • 📦 Téléchargements : Remonté à 200+/jour après un arrêt initial
  • 🐘 Mastodon : Partagé là aussi, mais le vrai bond est venu de HN
  • 💬 Retours : Les commentaires constructifs de la communauté HN ont directement façonné les correctifs v0.3.0 → v0.3.1
  • 🚀 À retenir : La visibilité sur Hacker News a été le catalyseur de la dynamique d'adoption

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

Table des matières

  • Outil de benchmark DNS
    • Faisant partie de BuildTools - Suite de performances réseau
    • 🎉 Quoi de neuf dans
    • 📈 Points forts de la communauté
    • Table des matières
    • 🎯 Pourquoi cet outil ?
      • Le problème
      • La solution
      • Parfait pour
    • Démarrage rapide
      • Installation
      • Lancer votre premier benchmark
      • Voir les résultats
    • ⚡ Commandes en un coup d'œil
    • ✨ Fonctionnalités clés
      • 🚀 Performance
      • 🔒 Sécurité et confidentialité
      • 📊 Analyse et export
      • 🏢 Fonctionnalités entreprise
      • 🌐 Multi-plateforme
    • 🔒 Sécurité et DNS chiffré
    • 🔧 Capacités avancées
    • 💼 Cas d'utilisation
      • 🔧 Pour les développeurs : optimiser les performances API
      • 🛡️ Pour les DevOps/SRE : valider avant une migration
      • 🏠 Pour les auto-hébergés : prouver les performances de Pi-hole
      • 📊 Pour les admins réseau : contrôles de santé automatisés
      • 🔐 Pour les défenseurs de la vie privée : tester le DNS chiffré
    • 📦 Installation et configuration
      • Prérequis
      • Installer depuis PyPI
      • Installer depuis les sources
      • Vérifier l'installation

🎯 Pourquoi cet outil ?

La résolution DNS est souvent le goulot d'étranglement caché dans les performances réseau. Un résolveur lent peut ajouter des centaines de millisecondes à chaque requête.

Le problème

  • ⏱️ Goulot d'étranglement caché : Le DNS peut ajouter 300ms+ à chaque requête
  • 🤷 Performance inconnue : La plupart des développeurs ne testent jamais leur DNS
  • 🌍 La localisation compte : Le résolveur « le plus rapide » dépend de l'endroit où VOUS êtes
  • 🔒 Sécurité variable : Le support DNSSEC, DoH, DoT varie énormément

La solution

dns-benchmark-tool vous aide à :

  • 🔍 Trouvez le résolveur DNS le plus rapide pour VOTRE emplacement
  • 📊 Obtenez des données réelles - P95, P99, gigue, scores de cohérence
  • 🛡️ Validez la sécurité - Vérification DNSSEC intégrée
  • 🚀 Testez à l'échelle - 100+ requêtes simultanées en quelques secondes

Parfait pour

  • ✅ Développeurs optimisant les performances API
  • ✅ DevOps/SRE validant les SLA des résolveurs
  • ✅ Auto-hébergés comparant Pi-hole/Unbound vs DNS public
  • ✅ Administrateurs réseau effectuant des contrôles de conformité

Démarrage rapide

Installation```bash

pip install dns-benchmark-tool

root@kitploit:~
### Exécutez votre premier benchmark```bash
# Test default resolvers against popular domains
dns-benchmark benchmark --use-defaults --formats csv,excel

Voir les résultats

Les résultats sont automatiquement sauvegardés dans ./benchmark_results/ avec :

  • CSV récapitulatif avec statistiques
  • Données brutes détaillées
  • Rapports PDF/Excel optionnels

C'est tout ! Vous venez de benchmarker 5 résolveurs DNS sur 10 domaines.


⚡ Commandes en un coup d'œil

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:~
## ✨ Fonctionnalités clés

### 🚀 Performances

- **Requêtes asynchrones** - Testez 100+ résolveurs simultanément
- **Multi-itération** - Exécutez les benchmarks plusieurs fois pour la précision
- **Analyse statistique** - Moyenne, médiane, P95, P99, gigue, cohérence
- **Contrôle du cache** - Testez avec/sans cache DNS

### 🔒 Sécurité et confidentialité

- **Validation DNSSEC** - Vérifiez les chaînes de confiance cryptographiques
- **DNS-over-HTTPS (DoH)** - Benchmarking DNS chiffré
- **DNS-over-TLS (DoT)** - Test de transport sécurisé
- **DNS-over-QUIC (DoQ)** - Support expérimental QUIC

### 📊 Analyse et export

- **Formats multiples** - CSV, Excel, PDF, JSON
- **Rapports visuels** - Graphiques et diagrammes
- **Statistiques par domaine** - Analyse des performances par domaine
- **Répartition des erreurs** - Identifiez les résolveurs problématiques

### 🏢 Fonctionnalités entreprise

- **Authentification TSIG** - Requêtes sécurisées en entreprise
- **Transferts de zone** - Validation AXFR/IXFR
- **Mises à jour dynamiques** - Testez les opérations d'écriture DNS
- **Rapports de conformité** - Documentation prête pour l'audit

### 🌐 Multi-plateforme

- **Linux, macOS, Windows** - Fonctionne partout
- **Amical pour CI/CD** - Sortie JSON, codes de sortie
- **Support IDNA** - Noms de domaine internationalisés
- **Détection automatique** - Découverte DNS WMI Windows

---

## 🔒 Sécurité et DNS chiffré

Trois protocoles sont entièrement supportés — chacun ajoute de la confidentialité au prix d'une latence.

| Protocole | Drapeau | Surcharge typique | Quand l'utiliser |
|---|---|---|---|
| UDP simple | *(défaut)* | référence | Test de latence |
| DNS-over-HTTPS | `--doh` | +50–200ms | Confidentialité, contournement de pare-feu |
| DNS-over-TLS | `--dot` | +200–500ms à froid, ~50ms à chaud | Transport chiffré |
| DNSSEC | `--dnssec-validate` | +30–100ms | Validation de l'intégrité du résolveur |

> ⚠️ **Compromis**
> - DoH et DoT ajoutent une surcharge de négociation TLS lors de la première requête par résolveur. Utilisez `--warmup-fast` pour absorber cela avant de mesurer.
> - `--dnssec-validate` demande des enregistrements RRSIG et applique le flag AD. Seulement environ 33 % des domaines courants sont signés DNSSEC — attendez-vous à des résultats `DNSSEC_FAILED` sur les domaines non signés. Les chiffres de latence avec et sans ce drapeau **ne sont pas directement comparables**.
> - Les résultats sur mobile/hotspot montreront une variance 2 à 5 fois plus élevée que sur Ethernet filaire. Utilisez `--iterations 5` et comparez la latence médiane, pas la moyenne.```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

Exemples d'échecs précoces — ceux-ci échouent immédiatement avant qu'une requête ne s'exécute :```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:~
---

## 🔧 Capacités avancées

---
> ⚠️ Ces drapeaux sont **documentés pour visibilité** mais pas encore implémentés.  
> Ils représentent des fonctionnalités avancées à venir.

- `--zone-transfer` → Test de transfert de zone AXFR/IXFR *(bientôt disponible)*
- `--tsig` → Requêtes authentifiées TSIG *(bientôt disponible)*
- `--idna` → Prise en charge des noms de domaine internationalisés *(bientôt disponible)*

---

<details>
<summary><b>🚀 Fonctionnalités de performance et de concurrence</b></summary>

<br>

- **E/S asynchrones avec dnspython** - Testez 100+ résolveurs simultanément
- **Prise en charge du framework Trio** - Opérations asynchrones à haute concurrence
- **Concurrence configurable** - Contrôle du nombre max de requêtes simultanées
- **Logique de tentative** - Recul exponentiel pour les requêtes échouées
- **Simulation de cache** - Testez avec ou sans mise en cache DNS
- **Benchmarks multi-itérations** - Exécutez plusieurs fois les tests pour plus de précision
- **Phase d'échauffement** - Pré-remplissez les caches DNS avant les tests
- **Analyse statistique** - Moyenne, médiane, P95, P99, gigue, scores de cohérence

**Exemple :**```bash
dns-benchmark benchmark \
  --max-concurrent 200 \
  --iterations 5 \
  --timeout 3.0 \
  --warmup
🔒 Fonctionnalités de sécurité et de confidentialité
  • Validation DNSSEC - Vérification des chaînes de confiance cryptographiques
  • DNS-over-HTTPS (DoH) - Tests de référence DNS chiffrés via HTTPS
  • DNS-over-TLS (DoT) - Tests de couche de transport sécurisée
  • DNS-over-QUIC (DoQ) - Prise en charge expérimentale du protocole QUIC
  • Authentification TSIG - Signatures de transactions pour DNS d'entreprise
  • Prise en charge EDNS0 - Fonctionnalités DNS étendues et charges utiles plus volumineuses

Exemple :```bash

Test DoH resolvers

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

root@kitploit:~
</details>

<details>
<summary><b>🏢 Fonctionnalités d'entreprise et de migration</b></summary>

<br>

- **Transferts de zone (AXFR/IXFR)** - Validation des transferts de zone complets et incrémentiels
- **Mises à jour DNS dynamiques** - Test des opérations d'écriture et des mises à jour DNS
- **Prise en charge d'EDNS0** - Options DNS étendues, sous-réseau client, charges utiles plus volumineuses
- **Intégration Windows WMI** - Détection automatique des paramètres DNS système actifs
- **Rapports de conformité** - Génération de rapports PDF/Excel prêts pour l'audit
- **Validation des SLA** - Suivi des seuils de disponibilité et de performance

**Exemple :**```bash
# Validate DNS migration
dns-benchmark benchmark \
  --resolvers old-provider.json,new-provider.json \
  --zone-transfer \ # coming soon
  --output migration-report/ \
  --formats pdf,excel
📊 Fonctionnalités d'analyse et de reporting
  • Statistiques par domaine - Analyser les performances par domaine
  • Statistiques par type d'enregistrement - Comparer A, AAAA, MX, TXT, etc.
  • Ventilation des erreurs - Catégoriser et compter les types d'erreurs
  • Matrices de comparaison - Comparaisons côte à côte des résolveurs
  • Analyse des tendances - Performances dans le temps (avec plusieurs exécutions)
  • Meilleur selon des critères - Trouver le meilleur résolveur selon la latence/fiabilité/cohérence

Exemple :```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>🌐 Internationalisation et compatibilité</b></summary>

<br>

- **Support IDNA** - Noms de domaine internationalisés (IDN)
- **Types d'enregistrements multiples** - A, AAAA, MX, TXT, CNAME, NS, SOA, PTR, SRV, CAA
- **Multi-plateforme** - Linux, macOS, Windows (support natif)
- **Intégration CI/CD** - Sortie JSON, codes de sortie appropriés, mode silencieux
- **Résolveurs personnalisés** - Charger depuis JSON, tester vos propres serveurs DNS
- **Domaines personnalisés** - Tester avec votre liste de domaines spécifique

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

💡 La plupart des utilisateurs n'ont besoin que des fonctionnalités de base. Ces capacités avancées sont disponibles lorsque vous en avez besoin.


💼 Cas d'utilisation

🔧 Pour les développeurs : Optimiser les performances de l'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:~
**Résultat :** Réduire la latence de l'API de 100 à 300 ms

---

### 🛡️ Pour DevOps/SRE : Valider avant la migration```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

Résultat : Vérifier les performances et la sécurité avant la migration


🏠 Pour les auto-hébergeurs : Prouver les performances de 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:~
**Résultat :** Preuve basée sur les données que votre DNS auto-hébergé est plus rapide (ou pas !)

---

### 📊 Pour les administrateurs réseau : vérifications automatisées de l'état de santé```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

Résultat: Rapport automatisé de conformité et de SLA


🔐 Pour les défenseurs de la vie privée: Testez le DNS chiffré```bash

Benchmark privacy-focused DoH/DoT resolvers

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

root@kitploit:~
**Résultat :** Trouvez le DNS chiffré le plus rapide sans sacrifier la confidentialité

---

## 📦 Installation et configuration

### Prérequis

- Python 3.9+
- Gestionnaire de paquets pip

### Installation depuis PyPI```bash
pip install dns-benchmark-tool

Installation à partir des sources```bash

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

root@kitploit:~
### Vérifier l'installation```bash
dns-benchmark --version
dns-benchmark --help

Première exécution```bash

Test with defaults (recommended for first time)

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

root@kitploit:~
---

## 📖 Exemples d'utilisation

### Utilisation de base```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

Utilisation avancée```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:~
---

⚠️ **Note pour les nouvelles commandes :** Les résolveurs sans requêtes réussies sont exclus du classement et afficheront `Avg Latency: N/A`.

---

## Prise en charge des entrées en ligne pour les résolveurs et les domaines

Ce correctif introduit la prise en charge complète des valeurs en ligne séparées par des virgules pour les options `--resolvers` et `--domains`, corrigeant le problème [#39](https://github.com/frankovo/dns-benchmark-tool/issues/39) et améliorant l'utilisabilité de la CLI sans rupture des flux de travail existants.

### Nouvelles fonctionnalités

1. **résolveurs en ligne** : `--resolvers "1.1.1.1,8.8.8.8,9.9.9.9"`
2. **domaines en ligne** : `--domains "google.com,github.com"`
3. **valeurs uniques** : `--resolvers "1.1.1.1"` ou `--domains "google.com"`
4. **résolveurs nommés** : `--resolvers "cloudflare,google,quad9"`
5. **entrée mixte** : `--resolvers "1.1.1.1,cloudflare,8.8.8.8"`

### Rétrocompatibilité

- toutes les configurations existantes basées sur des fichiers continuent de fonctionner
- aucune modification cassante de la CLI
- la détection des fichiers prime sur l'analyse des entrées en ligne

### Exemples d'utilisation

#### Avant (Seuls les fichiers fonctionnaient)```bash
dns-benchmark benchmark \
    --resolvers data/resolvers.json \
    --domains data/domains.txt

Après (Les deux fonctionnent)```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:~
#### Résolveurs nommés```bash
# Named resolvers
dns-benchmark benchmark \
    --resolvers "Cloudflare,Google,Quad9" \
    --domains "google.com,github.com" \
    --timeout 10 \
    --retries 3 \
    --formats csv \
    --output ./troubleshooting_named

Entrée mixte```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:~
#### Unique```bash

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

🔧 Outils

Gestion de 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:~
### Gestion des domaines```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

Aperçu de la catégorie```bash

View all available categories

dns-benchmark list-categories

root@kitploit:~
### Gestion de la configuration```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

Guide d'utilisation complet

Test de performance rapide```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:~
Drapeaux d'analyse des add-ons :```bash
# Include domain and record-type analytics and error breakdown
dns-benchmark benchmark --use-defaults \
  --domain-stats --record-type-stats --error-breakdown

JSON export:```bash

Export a machine-readable bundle

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

root@kitploit:~
#### Administrateur réseau```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

FAI & opérateur réseau```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:~
#### Développeur & 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

Auditeur de sécurité```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 d'entreprise```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

🔍 Ajustements du README pour le correctif final

Nouvelles options CLI


⚡ Commandes CLI

L'outil DNS Benchmark inclut désormais trois commandes spécialisées pour différents flux de travail :

🚀 Top

Classe rapidement les résolveurs par vitesse et fiabilité.```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:~
---

### 📊 Compare

Comparez les résolveurs côte à côte avec des statistiques détaillées.```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

🔄 Surveillance

Surveillez en continu les performances du résolveur avec des alertes.```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:~
---

### 🌟 Présentation des commandes

| Commande      | Objectif | Cas d'utilisation typique | Options clés | Sortie |
|--------------|---------|--------------------------|-------------|--------|
| **top**      | Classement rapide des résolveurs par vitesse et fiabilité | Vérification rapide pour voir quel résolveur est le meilleur actuellement | `--domains`, `--record-types`, `--output` | Liste triée des résolveurs avec latence et taux de succès |
| **compare**  | Comparaison côte à côte de résolveurs spécifiques | Évaluation détaillée sur les résolveurs/domaines choisis | `--domains`, `--record-types`, `--iterations`, `--output`, `--show-details` | Tableau des résolveurs avec latence, taux de succès, décomposition par domaine |
| **monitoring** | Surveillance continue avec alertes | Suivi en temps réel des performances des résolveurs dans le temps | `--interval`, `--duration`, `--alert-latency`, `--alert-failure-rate`, `--output`, `--use-defaults` | Indicateurs d'état en direct, alertes, fichier journal optionnel |

---

## 📊 Améliorations de l'analyse

- **Nombre d'itérations** : affiché lorsque plus d'une itération est exécutée.  
- **Hits de cache** : montre combien de requêtes ont été servies depuis le cache (lorsque `--use-cache` est activé).  
- **Suivi des échecs** : les résolveurs avec des erreurs répétées sont comptés et peuvent être inspectés avec `get_failed_resolvers()`.  
- **Statistiques du cache** : disponibles via `get_cache_stats()`, montrant le nombre d'entrées en cache et si le cache est activé.  
- **Résultats d'échauffement** : les requêtes d'échauffement sont marquées avec `iteration=0` dans les données brutes, ce qui permet de les filtrer facilement dans l'analyse.  

Exemple de résumé de sortie :

---```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%)

⚡ Meilleures pratiques

⚙️ Fichiers de configuration

Format JSON des résolveurs```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:~
### Format de fichier texte des domaines```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

Formats de sortie

Sorties CSV

  • Données brutes : résultats de requêtes individuels avec horodatage et métadonnées
  • Statistiques récapitulatives : métriques agrégées par résolveur
  • Statistiques par domaine : métriques par domaine (quand --domain-stats)
  • Statistiques par type d'enregistrement : métriques par type d'enregistrement (quand --record-type-stats)
  • Répartition des erreurs : comptages par type d'erreur (quand --error-breakdown)

Rapport Excel

  • Feuille de données brutes : tous les résultats de requêtes avec mise en forme
  • Résumé du résolveur : statistiques complètes avec mise en forme conditionnelle
  • Statistiques du domaine : performances par domaine (optionnel)
  • Statistiques par type d'enregistrement : performances par type d'enregistrement (optionnel)
  • Répartition des erreurs : comptages d'erreurs agrégés (optionnel)
  • Analyse des performances : graphiques et analyse comparative

Rapport PDF

  • Résumé exécutif : conclusions et recommandations clés
  • Graphiques de performances : comparaison des latences ; graphique optionnel du taux de succès
  • Classement des résolveurs : ordonnés par latence moyenne
  • Analyse détaillée : plongée technique avec percentiles

📄 Export PDF optionnel

Par défaut, l'outil prend en charge les exports CSV et Excel.
L'export PDF nécessite la dépendance supplémentaire weasyprint, qui n'est pas installée automatiquement pour éviter des problèmes d'exécution sur certaines plateformes.

Installation avec support PDF```bash

pip install dns-benchmark-tool[pdf]

root@kitploit:~
#### Utilisation

Une fois installé, vous pouvez demander une sortie PDF via la CLI :```bash
dns-benchmark --use-defaults --formats pdf --output ./results

Si weasyprint n'est pas installé et que vous demandez une sortie PDF, le CLI affichera :```bash [-] Error during benchmark: PDF export requires 'weasyprint'. Install with: pip install dns-benchmark-tool[pdf]

root@kitploit:~
---

### ⚠️ Configuration de WeasyPrint (pour l'export PDF)

L'outil DNS Benchmark utilise **WeasyPrint** pour générer des rapports PDF.  
Si vous souhaitez exporter en PDF, vous avez besoin de bibliothèques système supplémentaires en plus du package 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

Installez les bibliothèques GTK+ en utilisant l'une de ces méthodes :

- **MSYS2**: [Télécharger MSYS2](https://www.msys2.org/), puis exécutez :  ```bash
  pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-libffi
  • Installeur GTK+ 64 bits : Télécharger GTK+ Runtime et exécutez l'installateur.

Redémarrez votre terminal après l'installation.


✅ Vérifier l'installation

Après avoir installé les bibliothèques système, installez l'extension Python supplémentaire :```bash pip install dns-benchmark-tool[pdf]

root@kitploit:~
Ensuite, exécutez :```bash
dns-benchmark --use-defaults --formats pdf --output ./results

Export JSON

  • Bundle lisible par machine incluant:
    • Statistiques générales
    • Statistiques du résolveur
    • Résultats bruts des requêtes
    • Statistiques des domaines
    • Statistiques des types d'enregistrements
    • Ventilation des erreurs

Générer un exemple de configuration```bash

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

root@kitploit:~
---

## Optimisation des performances```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

Dépannage```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:~
### Mode débogage```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

Automatisation et CI

Tâches 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 exemple```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

Captures d'écran

Place images in 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. Exécution du benchmark CLI

Exécution du benchmark CLI

2. Rapport Excel généré

Rapport Excel généré

3. Résumé exécutif PDF

Résumé exécutif PDF

4. Graphiques PDF

Graphiques PDF

5. Graphiques Excel

Graphiques Excel

6. Surveillance en temps réel

Surveillance en temps réel


Obtenir de l'aide```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:~
Scénarios courants :```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

Workflow de publication

  • Prérequis

    • Clé GPG configurée : exécutez make gpg-check pour vérifier.
    • Protection de branche : main nécessite des commits signés et une CI réussie.
    • Publication CI : déclenchée sur les tags signés correspondant à vX.Y.Z.
  • Préparer la release (signée)

    • Incrémentation patch/minor/major :

      root@kitploit:~
      make release-patch      # ou : make release-minor / make release-major
      
      • Met à jour les versions.
      • Crée ou réutilise release/X.Y.Z.
      • Effectue un commit signé et pousse la branche.
    • Ouvrir une PR : depuis release/X.Y.Z vers main, puis fusionner une fois la CI passée.

  • Tagger et publier

    • Créer un tag signé et pousser :

      root@kitploit:~
      make release-tag VERSION=X.Y.Z
      
      • Tague main avec vX.Y.Z (signé).
      • CI publie sur PyPI.
  • Alternative manuelle

    • Créer une branche et un commit signé :


🌐 BuildTools Web Dashboard — Maintenant en ligne

La CLI reste gratuite pour toujours. Le tableau de bord web est maintenant disponible sur buildtools.net

Ce qui est en ligne maintenant (Gratuit + Pro)

  • 📊 DNS Benchmark — Résultats visuels, historique, propulsé par ce moteur CLI
  • 🔔 DNS Monitoring — Alertes en temps réel lorsque vos enregistrements changent
  • 🆓 Niveau gratuit — Commencez immédiatement, aucune carte de crédit requise
  • 💼 Pro à 14€/mois — Rétention étendue et support prioritaire

À venir T2 2026

  • ⚡ HTTP Benchmark — Mesure des temps de réponse API et performance CDN
  • 🔒 SSL Monitor — Alertes d'expiration de certificat avant l'apparition de problèmes

À venir T3 2026

  • 🌍 Tests multi-régions — Testez depuis plusieurs emplacements simultanément

→ Inscrivez-vous gratuitement sur buildtools.net


🛣️ Feuille de route

✅ Version actuelle (Édition CLI)

  • Benchmarquez, comparez, surveillez les résolveurs DNS
  • Support DoH, DoT, DNSSEC (nouveau dans cette version)
  • Export vers CSV, Excel, PDF, JSON

✅ Tableau de bord web (en ligne)

  • DNS Benchmark avec historique visuel
  • DNS Monitoring avec alertes en temps réel
  • Niveau gratuit + Pro à 14€/mois
  • buildtools.net

🔜 À venir T2 2026

  • HTTP Benchmark
  • SSL Monitor

T3 2026

  • Tests multi-régions

🤝 Contribuer

Nous adorons les contributions ! Voici comment vous pouvez aider :

Façons de contribuer

  • 🐛 Signaler des bugs - Ouvrir une issue
  • 💡 Suggérer des fonctionnalités - Démarrer une discussion
  • 📝 Améliorer la documentation - README, exemples, tutoriels
  • 🔧 Soumettre des PRs - Corrections de bugs, fonctionnalités, tests
  • ⭐ Mettre une étoile au dépôt - Aider les autres à découvrir l'outil
  • 📢 Faire passer le mot - Tweeter, bloguer, partager

🛠 Développement et commandes Makefile

Ce projet inclut un Makefile pour simplifier l'installation, les tests et les vérifications de qualité du code.```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:~
### Utilisation courante

- **Installer uniquement le runtime**  ```bash
  make install
  • Installer avec les dépendances de développement ```bash make install-dev
    root@kitploit:~
  • Exécuter les vérifications de types, le linting, le formatage et les tests ```bash make test
    root@kitploit:~
  • Exécuter uniquement les tests de fumée CLI ```bash make cli-test
    root@kitploit:~
  • Nettoyer les artefacts de build/test ```bash make clean
    root@kitploit:~

Directives de code

  • Suivre le guide de style PEP 8
  • Ajouter des tests pour les nouvelles fonctionnalités
  • Mettre à jour la documentation
  • Garder les PR ciblées et atomiques

❓ FAQ

Pourquoi le DNS de mon FAI n'est-il pas le plus rapide ?

Le DNS local du FAI a souvent des avantages de mise en cache mais peut manquer :

  • Réseau anycast mondial (plus lent pour les domaines distants)
  • Validation DNSSEC
  • Fonctionnalités de confidentialité (DoH/DoT)
  • Garanties de fiabilité

Testez les deux et décidez en fonction de VOS priorités !

À quelle fréquence devrais-je évaluer les performances DNS ?
  • Une fois : lors du choix du fournisseur DNS
  • Mensuellement : pour les vérifications de santé du réseau
  • Avant la migration : lors du changement de fournisseur
  • Après des problèmes : pour dépanner les performances
Puis-je tester mon propre serveur DNS ?

Oui ! Ajoutez-le simplement à un fichier JSON de résolveurs personnalisés :

---```json { "resolvers": [ {"name": "My DNS", "ip": "192.168.1.1"} ] }

root@kitploit:~
</details>

<details>
<summary><b>Quelle est la différence entre la version CLI et la version hébergée ?</b></summary>

**CLI (Gratuit pour toujours) :**

- Exécutez les tests depuis VOTRE emplacement
- Enregistrez les résultats localement
- Open source — le même moteur qui alimente le tableau de bord

**Tableau de bord web (En direct sur buildtools.net) :**

- Résultats de benchmark visuels et historique
- Surveillance DNS avec alertes en temps réel
- Niveau gratuit disponible, Pro à 14 €/mois
- Tests multi-régions à venir au T3 2026
</details>

<details>
<summary><b>Cet outil est-il sûr à utiliser en production ?</b></summary>

Oui ! L'outil effectue uniquement des requêtes DNS (opérations de lecture). Il ne :
- Modifie pas les enregistrements DNS
- Effectue pas d'attaques
- Envoie pas de données à des serveurs externes (sauf si vous activez les fonctionnalités hébergées)

Tous les tests sont des requêtes DNS standard que tout résolveur traite quotidiennement.

</details>

<details>
<summary><b>Pourquoi les résultats varient-ils entre les exécutions ?</b></summary>

Les performances DNS varient en raison de :
- Conditions réseau
- Mise en cache DNS (résolveur et intermédiaire)
- Charge du serveur
- Modifications du routage géographique

Exécutez plusieurs itérations (`--iterations 5`) pour des résultats plus cohérents.

</details>

---

## 🔗 Liens et support

### Officiel

- **Site web** : [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)

### Communauté

- **Discussions** : [GitHub Discussions](https://github.com/frankovo/dns-benchmark-tool/discussions)
- **Problèmes** : [Signaler un bug](https://github.com/frankovo/dns-benchmark-tool/issues)

### Statistiques

- **Téléchargements** : 1 400+ (cette semaine)
- **Utilisateurs actifs** : 600+

---

## Licence

Ce projet est sous licence MIT — voir le fichier [LICENSE](https://github.com/net-benchmark/dns-benchmark-tool/blob/HEAD/LICENSE) pour plus de détails.

---

<div align="center">

**Construit avec ❤️ par [@frankovo](https://github.com/frankovo)**

Fait partie de [BuildTools](https://buildtools.net) - Suite de performance réseau

[⭐ Star sur GitHub](https://github.com/frankovo/dns-benchmark-tool) • [📦 Installer depuis PyPI](https://pypi.org/project/dns-benchmark-tool/)

</div>
Télécharger l’outil
Premier lancement
  • 📖 Exemples d'utilisation
    • Utilisation de base
    • Utilisation avancée
  • Support d'entrée en ligne pour les résolveurs et domaines
    • Nouvelles capacités
    • Rétrocompatibilité
    • Exemples d'utilisation
      • Avant (Seuls les fichiers fonctionnaient)
      • Après (Les deux fonctionnent)
      • Résolveurs nommés
      • Entrée mixte
      • Unique
  • 🔧 Utilitaires
    • Gestion des résolveurs
    • Gestion des domaines
    • Aperçu des catégories
    • Gestion de la configuration
  • Guide d'utilisation complet
    • Test de performance rapide
      • Administrateur réseau
      • Fournisseur d'accès et opérateur réseau
      • Développeur et DevOps
      • Auditeur de sécurité
      • Informatique d'entreprise
  • 🔍 Ajustements du README pour le correctif final
    • Nouvelles options CLI
  • ⚡ Commandes CLI
    • 🚀 Top
    • 📊 Comparer
    • 🔄 Surveillance
    • 🌟 Démonstration des commandes
  • 📊 Améliorations de l'analyse
  • ⚡ Meilleures pratiques
  • ⚙️ Fichiers de configuration
    • Format JSON des résolveurs
    • Format du fichier texte des domaines
  • Formats de sortie
    • Sorties CSV
    • Rapport Excel
    • Rapport PDF
    • 📄 Export PDF optionnel
      • Installer avec le support PDF
      • Utilisation
    • ⚠️ Configuration WeasyPrint (pour export PDF)
      • 🛠 Linux (Debian/Ubuntu)
      • 🛠 macOS (Homebrew)
      • 🛠 Windows
      • ✅ Vérifier l'installation
    • Export JSON
    • Générer un exemple de configuration
  • Optimisation des performances
  • Dépannage
    • Mode débogage
  • Automatisation et CI
    • Tâches cron
    • Exemple GitHub Actions
  • Captures d'écran
    • 1. Exécution du benchmark en CLI
    • 2. Rapport Excel
    • 3. Résumé exécutif PDF
    • 4. Graphiques PDF
    • 5. Graphiques Excel
    • 6. Surveillance en temps réel
  • Obtenir de l'aide
  • Workflow de publication
  • 🌐 Tableau de bord Web BuildTools — Maintenant en ligne
    • Ce qui est en ligne maintenant (Gratuit + Pro)
    • À venir T2 2026
    • À venir T3 2026
  • 🛣️ Feuille de route
    • ✅ Version actuelle (Édition CLI)
    • ✅ Tableau de bord Web (En ligne)
    • 🔜 À venir T2 2026
      • T3 2026
  • 🤝 Contribuer
    • Façons de contribuer
    • 🛠 Développement et commandes Makefile
    • Utilisation courante
    • Directives de code
  • ❓ FAQ
  • 🔗 Liens et support
    • Officiel
    • Communauté
    • Statistiques
  • Licence
  • CommandeCe qu'elle faitExemple rapide
    benchmarkBenchmark DNS complet avec exportsdns-benchmark benchmark --use-defaults
    topClasser tous les résolveurs par vitessedns-benchmark top --limit 5
    compareComparaison côte à côte de résolveursdns-benchmark compare Cloudflare Google Quad9
    monitoringSurveillance continue avec alertesdns-benchmark monitoring --use-defaults
    OptionDescriptionExemple
    --iterations, -iExécute la boucle complète de benchmark N foisdns-benchmark benchmark --use-defaults -i 3
    --use-cachePermet de réutiliser les résultats en cache entre les itérationsdns-benchmark benchmark --use-defaults -i 3 --use-cache
    --warmupExécute un échauffement complet (tous les résolveurs × domaines × types d'enregistrement)dns-benchmark benchmark --use-defaults --warmup
    --warmup-fastExécute un échauffement léger (une sonde par résolveur)dns-benchmark benchmark --use-defaults --warmup-fast
    --include-chartsIntègre des graphiques et diagrammes dans les rapports PDF/Excel pour l'analyse visuelle des performancesdns-benchmark benchmark --use-defaults --formats pdf,excel --include-charts
    ModeFlags recommandéesObjectif
    Exécution rapide--iterations 1 --timeout 1 --retries 0 --warmup-fastRetour rapide, nouvelles tentatives minimales, préchauffage léger. Bon pour des vérifications rapides.
    Exécution approfondie--iterations 3 --use-cache --warmup --timeout 5 --retries 2Plusieurs passages, cache activé, préchauffage complet. Idéal pour des benchmarks détaillés.
    Mode débogage--iterations 1 --timeout 10 --retries 0 --quietDélai d'attente long, aucune nouvelle tentative, sortie minimale. Utile pour diagnostiquer les problèmes de résolveur.
    Exécution équilibrée--iterations 2 --use-cache --warmup-fast --timeout 2 --retries 1Un compromis : vitesse modérée, quelques nouvelles tentatives, cache activé, préchauffage rapide.
    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
    
  • Ouvrir une PR et fusionner dans main.

  • Ensuite, tagger :

    root@kitploit:~
    make release-tag VERSION=$NEXT_VERSION
    
  • Remarques

    • Commits signés : git commit -S ...
    • Tags signés : git tag -s vX.Y.Z -m "Release vX.Y.Z"
    • Sources de version : pyproject.toml et src/dns_benchmark/__init__.py