
तेज़, व्यापक DNS प्रदर्शन परीक्षण जिसमें DNSSEC सत्यापन, DoH/DoT समर्थन और उद्यम सुविधाएँ शामिल हैं
⚠️ यह परियोजना स्थानांतरित हो गई है और अब इसे बनाए नहीं रखा जा रहा है। नया संस्करण स्थापित करें:
pip install net-benchmarkरिपॉजिटरी: https://github.com/net-benchmark/net-benchmark सभी मौजूदा कमांड और फ्लैग पूरी तरह से संगत बने हुए हैं।
DNSSEC सत्यापन, DoH/DoT समर्थन, और एंटरप्राइज़ सुविधाओं के साथ तेज़, व्यापक DNS प्रदर्शन परीक्षण```bash pip install dns-benchmark-tool dns-benchmark benchmark --use-defaults --formats csv,excel
> 🎉 **1,400+ डाउनलोड · 600+ सक्रिय उपयोगकर्ता**
> 🚀 **वेब डैशबोर्ड अब लाइव है!** [BuildTools मुफ्त आज़माएं →](https://buildtools.net)
---
**रीयल टाइम ट्रैकिंग**
[](https://github.com/frankovo/dns-benchmark-tool)
*DNS क्वेरी को गतिमान देखें*
**रीयल टाइम ट्रैकिंग - वेब UI**
[](https://github.com/frankovo/dns-benchmark-tool)
*DNS क्वेरी को ईमेल अलर्ट के साथ लाइव मॉनिटर करें*
</div>
## 🎉 में नया क्या है 
हमने **तीन शक्तिशाली 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
DNS रिज़ॉल्यूशन अक्सर नेटवर्क प्रदर्शन में छिपा अड़चन होता है। एक धीमा रिज़ॉल्वर हर अनुरोध में सैकड़ों मिलीसेकंड जोड़ सकता है।
dns-benchmark-tool आपकी मदद करता है:
pip install dns-benchmark-tool
### अपना पहला बेंचमार्क चलाएं```bash
# Test default resolvers against popular domains
dns-benchmark benchmark --use-defaults --formats csv,excel
परिणाम स्वचालित रूप से ./benchmark_results/ में सहेजे जाते हैं जिनमें शामिल हैं:
बस इतना ही! आपने अभी 5 DNS रिज़ॉल्वरों को 10 डोमेन के विरुद्ध बेंचमार्क किया।
dns-benchmark top --limit 5
dns-benchmark compare Cloudflare Google Quad9 --show-details
dns-benchmark monitoring --use-defaults --dot
--interval 30 --duration 3600
--alert-latency 150 --output monitor.log
## ✨ मुख्य विशेषताएँ
### 🚀 प्रदर्शन
- **एसिंक्रोनस क्वेरीज़** - एक साथ 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
तीन प्रोटोकॉल पूरी तरह से समर्थित हैं — प्रत्येक लेटेंसी की कीमत पर गोपनीयता जोड़ता है।
| प्रोटोकॉल | फ़्लैग | सामान्य ओवरहेड | कब उपयोग करें |
|---|---|---|---|
| सादा 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 फ़्लैग लागू करता है। सामान्य डोमेन में से केवल ~33% DNSSEC-हस्ताक्षरित हैं — अहस्ताक्षरित डोमेन पर `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
dns-benchmark benchmark --use-defaults --doh --dot
dns-benchmark benchmark --resolvers "Cloudflare,Google" --doh
--doh-url "https://cloudflare-dns.com/dns-query"
dns-benchmark benchmark --resolvers "192.168.1.1" --doh
---
## 🔧 उन्नत क्षमताएँ
---
> ⚠️ ये फ़्लैग **दृश्यता के लिए दस्तावेज़ीकृत** हैं लेकिन अभी तक लागू नहीं किए गए हैं।
> ये आगामी उन्नत सुविधाओं का प्रतिनिधित्व करते हैं।
- `--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
उदाहरण:```bash
dns-benchmark benchmark
--doh
--resolvers doh-providers.json
--dnssec-validate
</details>
<details>
<summary><b>🏢 उद्यम और प्रवासन सुविधाएँ</b></summary>
<br>
- **Zone transfers (AXFR/IXFR)** - पूर्ण और वृद्धिशील ज़ोन स्थानांतरण सत्यापन
- **Dynamic DNS updates** - DNS लेखन संचालन और अद्यतन का परीक्षण करें
- **EDNS0 support** - विस्तारित DNS विकल्प, client subnet, बड़े पेलोड
- **Windows WMI integration** - सक्रिय सिस्टम DNS सेटिंग्स का स्वचालित पता लगाना
- **Compliance reporting** - ऑडिट-तैयार PDF/Excel रिपोर्ट उत्पन्न करें
- **SLA validation** - अपटाइम और प्रदर्शन सीमाओं को ट्रैक करें
**उदाहरण:**```bash
# Validate DNS migration
dns-benchmark benchmark \
--resolvers old-provider.json,new-provider.json \
--zone-transfer \ # coming soon
--output migration-report/ \
--formats pdf,excel
उदाहरण:```bash
dns-benchmark benchmark
--use-defaults
--formats csv,excel
--domain-stats
--record-type-stats
--error-breakdown
--formats csv,excel,pdf
</details>
<details>
<summary><b>🌐 अंतर्राष्ट्रीयकरण और संगतता</b></summary>
<br>
- **IDNA समर्थन** - अंतर्राष्ट्रीयकृत डोमेन नाम (IDN)
- **एकाधिक रिकॉर्ड प्रकार** - A, AAAA, MX, TXT, CNAME, NS, SOA, PTR, SRV, CAA
- **क्रॉस-प्लेटफ़ॉर्म** - लिनक्स, मैकओएस, विंडोज़ (मूल समर्थन)
- **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
💡 अधिकांश उपयोगकर्ताओं को केवल बुनियादी सुविधाओं की आवश्यकता होती है। जब आपको उनकी आवश्यकता हो, तो ये उन्नत क्षमताएं उपलब्ध हैं।
dns-benchmark benchmark
--domains api.myapp.com,cdn.myapp.com
--record-types A,AAAA
--resolvers production.json
--iterations 10
**परिणाम:** 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
परिणाम: माइग्रेशन से पहले प्रदर्शन और सुरक्षा की पुष्टि करें
dns-benchmark compare
--resolvers pihole.local,1.1.1.1,8.8.8.8,9.9.9.9
--domains common-sites.txt
--rounds 10
**परिणाम:** डेटा-संचालित प्रमाण कि आपका स्व-होस्टेड 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-benchmark benchmark
--doh
--resolvers privacy-resolvers.json
--domains sensitive-sites.txt
--dnssec-validate
**Result:** सबसे तेज़ एन्क्रिप्टेड DNS खोजें बिना गोपनीयता का त्याग किए
---
## 📦 स्थापना और सेटअप
### आवश्यकताएँ
- Python 3.9+
- pip पैकेज मैनेजर
### PyPI से स्थापित करें```bash
pip install dns-benchmark-tool
git clone https://github.com/frankovo/dns-benchmark-tool.git cd dns-benchmark-tool pip install -e .
### स्थापना सत्यापित करें```bash
dns-benchmark --version
dns-benchmark --help
dns-benchmark benchmark --use-defaults --formats csv,excel
## 📖 उपयोग के उदाहरण
### मूल उपयोग```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
dns-benchmark benchmark --use-defaults --json --output ./results
dns-benchmark benchmark --use-defaults --formats csv,excel --record-types A,AAAA,MX
dns-benchmark benchmark
--use-defaults
--output ./my-results
--formats csv,excel
dns-benchmark benchmark
--use-defaults
--formats csv,excel
--record-type-stats
--error-breakdown
dns-benchmark benchmark
--use-defaults
--formats csv,excel
--max-concurrent 200
--timeout 3.0
--retries 3
dns-benchmark benchmark
--resolvers data/global_resolvers.json
--domains data/migration_domains.txt
--formats excel,pdf
--output ./migration_analysis
dns-benchmark benchmark
--resolvers data/provider_candidates.json
--domains data/business_domains.txt
--formats csv,excel
--output ./provider_selection
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
dns-benchmark benchmark
--resolvers data/security_resolvers.json
--domains data/security_test_domains.txt
--formats pdf
--output ./security_assessment
dns-benchmark benchmark
--use-defaults
--formats csv
--quiet
--output /var/log/dns_benchmark/$(date +%Y%m%d_%H%M%S)
dns-benchmark top
dns-benchmark top --limit 5
dns-benchmark top --metric success
dns-benchmark top --metric reliability
dns-benchmark top --category privacy dns-benchmark top --category family dns-benchmark top --category security
dns-benchmark top --domains domains.txt
dns-benchmark top --record-types A,AAAA,MX
dns-benchmark top --timeout 3.0 --max-concurrent 50
dns-benchmark top --output results.json
dns-benchmark top --output results.csv
dns-benchmark top --output results.txt
dns-benchmark top --quiet
dns-benchmark top --limit 10 --metric reliability --category privacy --output top_resolvers.csv
dns-benchmark compare Cloudflare Google Quad9
dns-benchmark compare 1.1.1.1 8.8.8.8 9.9.9.9
dns-benchmark compare "Cloudflare" "Google" --iterations 5
dns-benchmark compare Cloudflare Google -d ./data/domains.txt
dns-benchmark compare Cloudflare Google -t A,AAAA,MX
dns-benchmark compare Cloudflare Google --timeout 3.0 --max-concurrent 200
dns-benchmark compare Cloudflare Google -o results.json
dns-benchmark compare Cloudflare Google -o results.csv
dns-benchmark compare Cloudflare Google --quiet
dns-benchmark compare Cloudflare Google --show-details
dns-benchmark monitoring --use-defaults
dns-benchmark monitoring -r resolvers.json --use-defaults
dns-benchmark monitoring -d domains.txt --use-defaults
dns-benchmark monitoring --use-defaults --interval 30
dns-benchmark monitoring --use-defaults --duration 3600
dns-benchmark monitoring --use-defaults --alert-latency 150 --alert-failure-rate 5
dns-benchmark monitoring --use-defaults --output monitor.log
dns-benchmark monitoring -r resolvers.json -d domains.txt -i 45 --duration 1800 -o monitor.log
dns-benchmark monitoring --use-defaults --interval 30 --duration 3600
--alert-latency 150 --alert-failure-rate 5 --output monitor.log
---
⚠️ **नए कमांड के लिए नोट:** जिन रिज़ॉल्वरों की कोई सफल क्वेरी नहीं है, उन्हें रैंकिंग से बाहर रखा जाता है और वे `Avg Latency: N/A` दिखाएंगे।
---
## रिज़ॉल्वर और डोमेन के लिए इनलाइन इनपुट सहायता
यह पैच `--resolvers` और `--domains` फ़्लैग्स के लिए कॉमा-सेपरेटेड इनलाइन वैल्यूज़ के लिए पूर्ण समर्थन प्रस्तुत करता है, जो समस्या [#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
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
dns-benchmark benchmark
--resolvers data/resolvers.json
--domains data/domains.txt
--formats csv
#### नामित रिज़ॉल्वर```bash
# Named resolvers
dns-benchmark benchmark \
--resolvers "Cloudflare,Google,Quad9" \
--domains "google.com,github.com" \
--timeout 10 \
--retries 3 \
--formats csv \
--output ./troubleshooting_named
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
#### एकल```bash
# Single
dns-benchmark benchmark \
--resolvers "1.1.1.1" \
--domains "google.com" \
--timeout 10 \
--retries 3 \
--formats csv \
--output ./troubleshooting
dns-benchmark list-defaults
dns-benchmark list-resolvers
dns-benchmark list-resolvers --details
dns-benchmark list-resolvers --category security dns-benchmark list-resolvers --category privacy dns-benchmark list-resolvers --category family
dns-benchmark list-resolvers --format csv dns-benchmark list-resolvers --format json
### डोमेन प्रबंधन```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
dns-benchmark list-categories
### विन्यास प्रबंधन```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
dns-benchmark benchmark --use-defaults
dns-benchmark benchmark --use-defaults --formats csv --quiet
dns-benchmark benchmark --use-defaults --record-types A,AAAA,MX
ऐड-ऑन एनालिटिक्स ध्वज:```bash
# Include domain and record-type analytics and error breakdown
dns-benchmark benchmark --use-defaults \
--domain-stats --record-type-stats --error-breakdown
JSON निर्यात:```bash
dns-benchmark benchmark --use-defaults --json --output ./results
#### नेटवर्क प्रशासक```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
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
dns-benchmark benchmark
--resolvers data/regional_resolvers.json
--domains data/regional_domains.txt
--formats excel
--quiet
--output ./regional_analysis
#### डेवलपर और 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
dns-benchmark benchmark
--resolvers data/security_resolvers.json
--domains data/malware_test_domains.txt
--formats csv,pdf
--output ./security_audit
dns-benchmark benchmark
--resolvers data/privacy_resolvers.json
--domains data/tracking_domains.txt
--formats excel
--output ./privacy_analysis
#### उद्यम 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
DNS बेंचमार्क टूल में अब विभिन्न वर्कफ़्लो के लिए तीन विशेष कमांड शामिल हैं:
गति और विश्वसनीयता के आधार पर रिज़ॉल्वर को शीघ्रता से रैंक करें।```bash
dns-benchmark top
dns-benchmark top -d domains.txt
dns-benchmark top -o results.json
### 📊 तुलना करें
बेंचमार्क रिज़ॉल्वर को विस्तृत आँकड़ों के साथ साथ-साथ तुलना करें।```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
dns-benchmark monitoring --use-defaults
dns-benchmark monitoring -r resolvers.json -d domains.txt
dns-benchmark monitoring --use-defaults --interval 30 --duration 3600
--alert-latency 150 --alert-failure-rate 5 --output monitor.log
---
### 🌟 कमांड प्रदर्शन
| कमांड | उद्देश्य | सामान्य उपयोग मामला | मुख्य विकल्प | आउटपुट |
|--------------|---------|------------------|-------------|--------|
| **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%)
{ "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" } ] }
### डोमेन टेक्स्ट फ़ाइल प्रारूप```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 और Excel निर्यात का समर्थन करता है।
PDF निर्यात के लिए अतिरिक्त निर्भरता weasyprint की आवश्यकता होती है, जो कुछ प्लेटफ़ॉर्म पर रनटाइम समस्याओं से बचने के लिए स्वचालित रूप से स्थापित नहीं की जाती है।
pip install dns-benchmark-tool[pdf]
#### उपयोग
एक बार स्थापित होने के बाद, आप 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]
---
### ⚠️ WeasyPrint सेटअप (PDF निर्यात के लिए)
DNS Benchmark Tool **WeasyPrint** का उपयोग करके PDF रिपोर्ट तैयार करता है।
यदि आप PDF निर्यात चाहते हैं, तो आपको पायथन पैकेज के अलावा अतिरिक्त सिस्टम लाइब्रेरीज़ की आवश्यकता होगी।
#### 🛠 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
brew install pango cairo libffi gdk-pixbuf jpeg openjpeg harfbuzz
---
#### 🛠 Windows
निम्नलिखित विधियों में से किसी एक का उपयोग करके GTK+ लाइब्रेरीज़ स्थापित करें:
- **MSYS2**: [Download MSYS2](https://www.msys2.org/), फिर चलाएँ: ```bash
pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-libffi
स्थापना के बाद अपने टर्मिनल को पुनरारंभ करें।
सिस्टम लाइब्रेरीज़ स्थापित करने के बाद, Python एक्स्ट्रा इंस्टॉल करें:```bash pip install dns-benchmark-tool[pdf]
फिर चलाएँ:```bash
dns-benchmark --use-defaults --formats pdf --output ./results
dns-benchmark generate-config
--category privacy
--output my-config.yaml
## प्रदर्शन अनुकूलन```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
pip install -e . python -m dns_benchmark.cli --help
sudo apt-get install libcairo2 libpango-1.0-0 libpangocairo-1.0-0
libgdk-pixbuf2.0-0 libffi-dev shared-mime-info
dns-benchmark benchmark --use-defaults --formats csv,excel
dns-benchmark benchmark --use-defaults --timeout 10 --retries 3 dns-benchmark benchmark --use-defaults --max-concurrent 25
### डीबग मोड```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
0 2 * * * /usr/local/bin/dns-benchmark benchmark --use-defaults --formats csv --quiet --output /var/log/dns_benchmark/daily_$(date +%Y%m%d)
0 */6 * * * /usr/local/bin/dns-benchmark benchmark --use-defaults --formats csv --quiet --output /var/log/dns_benchmark/$(date +%Y%m%d_%H)
### 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.pngdocs/screenshots/excel_report.pngdocs/screenshots/pdf_summary.pngdocs/screenshots/pdf_charts.pngdocs/screenshots/excel_charts.pngdocs/screenshots/real_time_monitoring.pngdns-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
Common scenarios:```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
पूर्वापेक्षाएँ
make gpg-check चलाएँ।रिलीज़ तैयार करें (हस्ताक्षरित)
पैच/माइनर/मेजर बम्प:
make release-patch # or: make release-minor / make release-major
release/X.Y.Z बनाता या पुनः उपयोग करता है।PR खोलें: release/X.Y.Z से main में, फिर CI पास होने पर मर्ज करें।
टैग और प्रकाशित करें
हस्ताक्षरित टैग बनाएं और पुश करें:
make release-tag VERSION=X.Y.Z
vX.Y.Z (हस्ताक्षरित) से टैग करता है।मैन्युअल विकल्प
शाखा बनाएं और हस्ताक्षरित कमिट करें:
CLI हमेशा मुफ्त रहता है। वेब डैशबोर्ड अब buildtools.net पर उपलब्ध है
→ buildtools.net पर मुफ्त साइन अप करें
हमें योगदान पसंद है! आप कैसे मदद कर सकते हैं:
इस प्रोजेक्ट में इंस्टॉलेशन, परीक्षण और कोड गुणवत्ता जांच को सरल बनाने के लिए एक Makefile शामिल है।```makefile
.PHONY: install install-dev uninstall mypy black isort flake8 cov test clean cli-test
install: pip install .
install-dev: pip install .[dev]
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:
pytest -vv -s -m cli tests/test_cli_commands.py
### सामान्य उपयोग
- **केवल रनटाइम स्थापित करें** ```bash
make install
स्थानीय ISP DNS में अक्सर कैशिंग लाभ होता है लेकिन इसमें कमी हो सकती है:
दोनों का परीक्षण करें और अपनी प्राथमिकताओं के आधार पर निर्णय लें!
हाँ! बस इसे कस्टम resolvers JSON फ़ाइल में जोड़ें:```json { "resolvers": [ {"name": "My DNS", "ip": "192.168.1.1"} ] }
</details>
<details>
<summary><b>CLI और होस्टेड संस्करण में क्या अंतर है?</b></summary>
**CLI (सदैव मुफ्त):**
- अपने स्थान से परीक्षण चलाएँ
- परिणाम स्थानीय रूप से सहेजें
- ओपन सोर्स — वही इंजन जो डैशबोर्ड को संचालित करता है
**वेब डैशबोर्ड (buildtools.net पर लाइव):**
- दृश्य बेंचमार्क परिणाम और इतिहास
- रीयल-टाइम अलर्ट के साथ DNS निगरानी
- मुफ्त स्तर उपलब्ध, Pro €14/माह पर
- Q3 2026 में बहु-क्षेत्र परीक्षण आ रहा है
</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/main/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>
| कमांड | यह क्या करता है | त्वरित उदाहरण |
|---|
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 | हल्का वार्मअप चलाएं (प्रति रिज़ॉल्वर एक प्रोब) | dns-benchmark benchmark --use-defaults --warmup-fast |
--include-charts | दृश्य प्रदर्शन विश्लेषण के लिए PDF/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 | एक मध्यम मार्ग: मध्यम गति, कुछ पुनर्प्रयास, कैश सक्षम, त्वरित वार्मअप। |
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
PR खोलें और main में मर्ज करें।
फिर टैग करें:
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