Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dns-benchmark-tool — اختبار أداء DNS سريع وشامل مع التحقق من DNSSEC، ودعم DoH/DoT، وميزات المؤسسات | Kitploit
أدوات/GitHubGitHub/net-benchmark/dns-benchmark-tool
أدوات التشفير/فك التشفيرتخطيط الشبكةأمن الشبكاتالخصوصيةتحليل DNSArchived
GitHubnet-benchmark/dns-benchmark-tool

dns-benchmark-tool

اختبار أداء DNS سريع وشامل مع التحقق من DNSSEC، ودعم DoH/DoT، وميزات المؤسسات

عرض المستودع
36312منذ 3 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

⚠️ هذا المشروع قد انتقل ولم يعد يُصان. قم بتثبيت الخلف: pip install net-benchmark المستودع: https://github.com/net-benchmark/net-benchmark جميع الأوامر والأعلام الحالية تبقى متوافقة تمامًا.


أداة قياس أداء DNS

جزء من BuildTools - مجموعة أداء الشبكة

اختبار سريع وشامل لأداء DNS مع التحقق من DNSSEC، ودعم DoH/DoT، وميزات المؤسسات```bash pip install dns-benchmark-tool dns-benchmark benchmark --use-defaults --formats csv,excel

root@kitploit:~
> 🎉 **أكثر من 1,400 تحميل · أكثر من 600 مستخدم نشط**
> 🚀 **لوحة الويب أصبحت متاحة الآن!** [جرب BuildTools مجانًا →](https://buildtools.net)

---

**تتبع في الوقت الحقيقي**

[![تتبع في الوقت الحقيقي](https://assets.kitploit.com/production/public/readmes/9801/abc3e3079146e364e8a291edc0e19bfcaf931bcd7a3db5d7a8d9daf5ed565e94.gif)](https://github.com/frankovo/dns-benchmark-tool)
*شاهد استعلامات DNS أثناء الحركة*

**تتبع في الوقت الحقيقي - واجهة الويب**
[![تتبع في الوقت الحقيقي - واجهة الويب](https://assets.kitploit.com/production/public/readmes/9801/02b1a1ab9d814fa4de537464def46493c36f96a5d0787a13c2d14eb07dfc2d11.gif)](https://github.com/frankovo/dns-benchmark-tool)
*مراقبة استعلامات DNS مباشرة مع تنبيهات البريد الإلكتروني*

</div>

## 🎉 ما الجديد في ![جديد](https://img.shields.io/pypi/v/dns-benchmark-tool.svg?color=brightgreen&label=new)

أضفنا **ثلاثة أوامر 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

📈 أبرز ما في المجتمع

  • ⭐ النجوم: نمت من 7 → 110+ بعد النشر على Hacker News
  • 📦 التحميلات: عادت إلى 200+/يوم بعد توقف أولي
  • 🐘 Mastodon: تمت المشاركة هناك أيضًا، لكن الزيادة الحقيقية جاءت من HN
  • 💬 ملاحظات: ساهمت المدخلات البناءة من مجتمع 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
    • جزء من BuildTools - مجموعة أداء الشبكة
    • 🎉 ما الجديد في
    • 📈 أبرز ما في المجتمع
    • جدول المحتويات
    • 🎯 لماذا هذه الأداة؟
      • المشكلة
      • الحل
      • مثالي لـ
    • بداية سريعة
      • التثبيت
      • تشغيل أول اختبار قياس أداء
      • عرض النتائج
    • ⚡ الأوامر في لمحة
    • ✨ الميزات الرئيسية
      • 🚀 الأداء
      • 🔒 الأمان والخصوصية
      • 📊 التحليل والتصدير
      • 🏢 ميزات المؤسسات
      • 🌐 عبر الأنظمة الأساسية
    • 🔒 أمان 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 الذين يتحققون من اتفاقيات مستوى الخدمة للمحلل
  • ✅ المستضيفين الذاتيين الذين يقارنون 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 اختيارية

هذا كل شيء! لقد قمت للتو باختبار 5 محللات DNS مقابل 10 نطاقات.


⚡ الأوامر في لمحة

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 عبر HTTPS (DoH)** - قياس أداء DNS المشفر
- **DNS عبر TLS (DoT)** - اختبار النقل الآمن
- **DNS عبر QUIC (DoQ)** - دعم تجريبي لـ QUIC

### 📊 التحليل والتصدير

- **صيغ متعددة** - CSV، Excel، PDF، JSON
- **تقارير بصرية** - رسوم بيانية ومخططات
- **إحصائيات النطاقات** - تحليل أداء لكل نطاق
- **تقسيم الأخطاء** - تحديد المحللين الذين يعانون من مشاكل

### 🏢 ميزات المؤسسات

- **مصادقة TSIG** - استعلامات مؤسسية آمنة
- **نقل النطاقات** - التحقق من AXFR/IXFR
- **التحديثات الديناميكية** - اختبار عمليات كتابة DNS
- **تقارير الامتثال** - وثائق جاهزة للتدقيق

### 🌐 عبر المنصات

- **لينكس، ماك، ويندوز** - يعمل في كل مكان
- **متوافق مع CI/CD** - مخرجات JSON، رموز الخروج
- **دعم IDNA** - أسماء النطاقات الدولية
- **الكشف التلقائي** - اكتشاف DNS عبر WMI في ويندوز

---

## 🔒 الأمان و DNS المشفر

ثلاثة بروتوكولات مدعومة بالكامل - كل منها يضيف خصوصية بتكلفة زمن وصول.

| البروتوكول | العلامة | التكلفة النموذجية الإضافية | متى تستخدم |
|---|---|---|---|
| UDP العادي | *(افتراضي)* | خط الأساس | قياس أداء زمن الوصول |
| DNS عبر HTTPS | `--doh` | +50–200 مللي ثانية | الخصوصية، تجاوز جدار الحماية |
| DNS عبر TLS | `--dot` | +200–500 مللي ثانية (بارد)، ~50 مللي ثانية (دافئ) | نقل مشفر |
| DNSSEC | `--dnssec-validate` | +30–100 مللي ثانية | التحقق من سلامة المحلل |

> ⚠️ **مقايضات**
> - يضيف 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

--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>

- **I/O غير متزامن مع dnspython** - اختبر أكثر من 100 محلل في وقت واحد
- **دعم إطار Trio** - عمليات غير متزامنة عالية التزامن
- **التزامن القابل للتكوين** - تحكم في الحد الأقصى للاستعلامات المتزامنة
- **منطق إعادة المحاولة** - تأخير أسي للاستعلامات الفاشلة
- **محاكاة التخزين المؤقت** - اختبر مع/بدون تخزين DNS المؤقت
- **معايير متعددة التكرارات** - تشغيل الاختبارات عدة مرات للدقة
- **مرحلة التسخين** - تسخين مسبق لذاكرة التخزين المؤقت DNS قبل الاختبار
- **التحليل الإحصائي** - المتوسط، الوسيط، P95، P99، التذبذب، درجات الاتساق

**مثال:**```bash
dns-benchmark benchmark \
  --max-concurrent 200 \
  --iterations 5 \
  --timeout 3.0 \
  --warmup
🔒 ميزات الأمان والخصوصية
  • تحقق DNSSEC - التحقق من سلاسل الثقة المشفرة
  • DNS عبر HTTPS (DoH) - قياس أداء DNS مشفر عبر HTTPS
  • DNS عبر TLS (DoT) - اختبار طبقة النقل الآمنة
  • DNS عبر QUIC (DoQ) - دعم بروتوكول QUIC التجريبي
  • مصادقة TSIG - توقيعات المعاملات لـ DNS المؤسسي
  • دعم EDNS0 - ميزات 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 الموسعة، الشبكة الفرعية للعميل، أحجام الحمولة الأكبر
- **تكامل WMI في Windows** - الكشف التلقائي عن إعدادات 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

النتيجة: التقارير التلقائية للامتثال واتفاقيات مستوى الخدمة


🔐 لمدافعي الخصوصية: اختبار 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

### التثبيت من 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`، مما يحل المشكلة [#39](https://github.com/frankovo/dns-benchmark-tool/issues/39) ويحسن قابلية استخدام واجهة الأوامر دون كسر أي سير عمل موجود.

### الإمكانيات الجديدة

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"`

### التوافق العكسي

- جميع التكوينات المستندة إلى الملفات تستمر في العمل
- لا توجد تغييرات جذرية في واجهة الأوامر
- اكتشاف الملف له الأولوية على التحليل المضمّن

### أمثلة الاستخدام

#### قبل (كانت الملفات فقط تعمل)```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:~
#### تقنية المعلومات المؤسسية```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 الآن تتضمن ثلاثة أوامر متخصصة لسير عمل مختلفة:

🚀 الأعلى

ترتيب المحللين بسرعة حسب السرعة والموثوقية.```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:~
---

### 📊 مقارنة

قياس أداء resolvers جنبًا إلى جنب مع إحصائيات مفصلة.```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

🔄 المراقبة

استمر في مراقبة أداء resolver مع التنبيهات.```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` في البيانات الخام، مما يسهل تصفيتها في التحليل.  

مثال على مخرجات الملخص:

some example output here (not translated)

root@kitploit:~

=== 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%)
```
## ⚡ أفضل الممارسات

| الوضع            | العلامات الموصى بها                                                                 | الغرض                                                                 |
|-----------------|------------------------------------------------------------------------------------|-------------------------------------------------------------------------|
| **تشغيل سريع**   | `--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`                 | حل وسط: سرعة معتدلة، بعض إعادة المحاولة، ذاكرة تخزين مؤقت ممكّنة، إحماء سريع. |

## ⚙️ ملفات التكوين

### تنسيق 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"
    }
  ]
}
```
### تنسيق ملف النص للنطاقات```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

```
pip install dnsresolver[pdf]
``````bash
pip install dns-benchmark-tool[pdf]
```
#### الاستخدام

بمجرد التثبيت، يمكنك طلب إخراج PDF عبر CLI:```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، فأنت بحاجة إلى مكتبات نظام إضافية بالإضافة إلى حزمة 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
```
---

#### 🛠 Windows

قم بتثبيت مكتبات GTK+ باستخدام إحدى هذه الطرق:

- **MSYS2**: [تنزيل MSYS2](https://www.msys2.org/)، ثم قم بتشغيل:  ```bash
  pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-libffi
  ```
- **GTK+ 64‑bit Installer**: [Download GTK+ Runtime](https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases) وقم بتشغيل المثبّت.

أعد تشغيل الطرفية بعد التثبيت.

---

#### ✅ تحقق من التثبيت

بعد تثبيت مكتبات النظام، قم بتثبيت الإضافة الإضافية لـ Python:```bash
pip install dns-benchmark-tool[pdf]
```
ثم قم بتشغيل:```bash
dns-benchmark --use-defaults --formats pdf --output ./results
```
### تصدير JSON

- حزمة قابلة للقراءة آليًا تشمل:
  - إحصائيات عامة
  - إحصائيات المحلل
  - نتائج الاستعلام الخام
  - إحصائيات النطاق
  - إحصائيات نوع السجل
  - تفصيل الأخطاء

### توليد نموذج تكوين```bash
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
```
---

## استكشاف الأخطاء وإصلاحها```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
```
### وضع التصحيح```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
```
## الأتمتة والتكامل المستمر

### مهام 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)
```
### مثال على 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](https://assets.kitploit.com/production/public/readmes/9801/6c17422ba1d532719d184abffa4c7cb570c6b8fc18faae6adc3af6b4cdaac8d2.png)](https://github.com/frankovo/dns-benchmark-tool)

### 2. تقرير Excel الناتج

[![تقرير Excel الناتج](https://assets.kitploit.com/production/public/readmes/9801/d500c68a4e87710aad9d0c854bfa297038e06c04f972c7bb9280e1c37286ca6e.png)](https://github.com/frankovo/dns-benchmark-tool)

### 3. ملخص تنفيذي بصيغة PDF

[![ملخص تنفيذي بصيغة PDF](https://assets.kitploit.com/production/public/readmes/9801/d789a4cb646bf988c8aac52d90c66ceb564fc05a3e96a165258a08abfd4cd925.png)](https://github.com/frankovo/dns-benchmark-tool)

### 4. رسوم بيانية بصيغة PDF

[![رسوم بيانية بصيغة PDF](https://assets.kitploit.com/production/public/readmes/9801/229ffa707087ecd062afe71cb541ac0fe4c81223637dbc630d40952d88f2b312.png)](https://github.com/frankovo/dns-benchmark-tool)

### 5. رسوم بيانية بصيغة Excel

[![رسوم بيانية بصيغة Excel](https://assets.kitploit.com/production/public/readmes/9801/686da80a71c6c3d5a096d8c2ba22b10b03599e6a61c68e1739ea1165385bf1e9.png)](https://github.com/frankovo/dns-benchmark-tool)

### 6. مراقبة فورية

[![مراقبة فورية](https://assets.kitploit.com/production/public/readmes/9801/ff9ef254e9e4b586f3d366250cc64a68213fe91e4c85df4a23b7381eb744cecc.png)](https://github.com/frankovo/dns-benchmark-tool)

---

## الحصول على المساعدة```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
```
السيناريوهات الشائعة:```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` للتحقق.
  - **حماية الفرع:** الفرع الرئيسي يتطلب تواقيع ملتزمة واجتياز CI.
  - **نشر CI:** يُطلق عند الوسوم الموقعة التي تطابق vX.Y.Z.

- **تحضير الإصدار (موقّع)**
  - **ترقية تصحيحية/ثانوية/رئيسية:**
  
    ```bash
    make release-patch      # أو: make release-minor / make release-major
    ```

    - يُحدّث الإصدارات.
    - ينشئ أو يعيد استخدام `release/X.Y.Z`.
    - ينشئ التزامًا موقعًا ويدفع الفرع.
  - **فتح طلب سحب:** من `release/X.Y.Z` إلى `main`، ثم دمجه بمجرد اجتياز CI.

- **الوسم والنشر**
  - **إنشاء وسم موقع ودفعه:**

    ```bash
    make release-tag VERSION=X.Y.Z
    ```

    - يوسم الفرع الرئيسي بـ `vX.Y.Z` (موقع).
    - ينشر CI إلى PyPI.

- **بديل يدوي**
  - **إنشاء فرع والتزام موقع:**
  
    ```bash
    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
    ```

  - **فتح طلب سحب ودمجه في الفرع الرئيسي.**
  - **ثم الوسم:**
  
    ```bash
    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`

---

## 🌐 لوحة تحكم ويب BuildTools — متاحة الآن

**الواجهة السطرية تبقى مجانية للأبد.** لوحة التحكم الويب متاحة الآن على [buildtools.net](https://buildtools.net)

### ما هو متاح الآن (مجاني + محترف)

- 📊 **قياس أداء DNS** — نتائج مرئية، تاريخ، مدعوم بمحرك هذه الواجهة السطرية
- 🔔 **مراقبة DNS** — تنبيهات فورية عند تغيير سجلاتك
- 🆓 **الطبقة المجانية** — ابدأ فورًا، لا حاجة لبطاقة ائتمان
- 💼 **محترف بـ 14 يورو/شهر** — فترة احتفاظ ممتدة ودعم ذو أولوية

### قادم في الربع الثاني 2026

- ⚡ **قياس أداء HTTP** — قياس أوقات استجابة API وأداء CDN
- 🔒 **مراقب SSL** — تنبيهات انتهاء الشهادة قبل حدوث المشكلات

### قادم في الربع الثالث 2026

- 🌍 **اختبار متعدد المناطق** — الاختبار من مواقع متعددة في وقت واحد

[→ سجل مجانًا على buildtools.net](https://buildtools.net)

---

## 🛣️ خريطة الطريق

### ✅ الإصدار الحالي (إصدار الواجهة السطرية)

- قياس أداء، مقارنة، مراقبة محللات DNS
- دعم DoH و DoT و DNSSEC (جديد في هذا الإصدار)
- تصدير إلى CSV و Excel و PDF و JSON

### ✅ لوحة التحكم الويب (متاحة)

- قياس أداء DNS مع تاريخ مرئي
- مراقبة DNS مع تنبيهات فورية
- الطبقة المجانية + محترف بـ 14 يورو/شهر
- [buildtools.net](https://buildtools.net)

### 🔜 قادم في الربع الثاني 2026

- قياس أداء HTTP
- مراقب SSL
  
#### الربع الثالث 2026

- اختبار متعدد المناطق

---

## 🤝 المساهمة

نحن نحب المساهمات! إليك كيف يمكنك المساعدة:

### طرق المساهمة

- 🐛 **الإبلاغ عن الأخطاء** - [افتح مشكلة](https://github.com/frankovo/dns-benchmark-tool/issues)
- 💡 **اقتراح ميزات** - [ابدأ نقاشًا](https://github.com/frankovo/dns-benchmark-tool/discussions)
- 📝 **تحسين التوثيق** - README، أمثلة، دروس تعليمية
- 🔧 **تقديم طلبات سحب** - إصلاحات الأخطاء، الميزات، الاختبارات
- ⭐ **إضافة نجمة للمستودع** - ساعد الآخرين في اكتشاف الأداة
- 📢 **نشر الكلمة** - تغريدة، مدونة، مشاركة

### 🛠 التطوير وأوامر 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
```
### الاستخدام الشائع

- **تثبيت وقت التشغيل فقط**  ```bash
  make install
  ```
- **التثبيت مع التبعيات التطويرية**  ```bash
  make install-dev
  ```
- **تشغيل فحوصات الأنواع، وتنظيف الكود، وتنسيقه، واختباراته**  ```bash
  make test
  ```
- **تشغيل اختبارات الدخان الخاصة بواجهة سطر الأوامر فقط**  ```bash
  make cli-test
  ```
- **تنظيف مخرجات البناء/الاختبار**  ```bash
  make clean
  ```
---

### إرشادات الكود

- اتبع دليل نمط PEP 8
- أضف اختبارات للميزات الجديدة
- حدّث التوثيق
- حافظ على تركيز طلبات السحب (PRs) وجعلها ذرية

---

## ❓ الأسئلة الشائعة

<details>
<summary><b>لماذا ليس DNS الخاص بمزود خدمة الإنترنت لدي هو الأسرع؟</b></summary>

غالبًا ما يكون لدى DNS الخاص بمزود خدمة الإنترنت المحلي مزايا تخزين مؤقت ولكنه قد يفتقر إلى:
- شبكة أي كاست عالمية (أبطأ للنطاقات البعيدة)
- التحقق من صحة DNSSEC
- ميزات الخصوصية (DoH/DoT)
- ضمانات الموثوقية

اختبر كليهما وقرر بناءً على أولوياتك!

</details>

<details>
<summary><b>كم مرة يجب أن أقوم بقياس أداء DNS؟</b></summary>

- **لمرة واحدة**: عند اختيار مزود DNS
- **شهرياً**: لفحص صحة الشبكة
- **قبل الترحيل**: عند تغيير المزودين
- **بعد المشكلات**: لاستكشاف الأداء

</details>

<details>
<summary><b>هل يمكنني اختبار خادم DNS الخاص بي؟</b></summary>

نعم! فقط أضفه إلى ملف JSON مخصص للمُحلّلات (resolvers):

</details>```json
{
  "resolvers": [
    {"name": "My DNS", "ip": "192.168.1.1"}
  ]
}
```
</details>

<details>
<summary><b>ما الفرق بين الإصدار CLI والإصدار المستضاف؟</b></summary>

**CLI (مجاني للأبد):**

- تشغيل الاختبارات من موقعك
- حفظ النتائج محلياً
- مفتوح المصدر — نفس المحرك الذي يشغل لوحة التحكم

**لوحة التحكم على الويب (متاحة على buildtools.net):**

- نتائج وأدلة معيارية مرئية مع السجل
- مراقبة DNS مع تنبيهات فورية
- الطبقة المجانية متاحة، والاحترافية بـ 14 يورو/شهر
- اختبار متعدد المناطق قادم في الربع الثالث 2026
</details>

<details>
<summary><b>هل هذه الأداة آمنة للاستخدام في الإنتاج؟</b></summary>

نعم! الأداة تقوم فقط بعمليات بحث DNS (عمليات قراءة). لا تقوم بـ:
- تعديل سجلات DNS
- تنفيذ هجمات
- إرسال البيانات إلى خوادم خارجية (إلا إذا قمت بتمكين الميزات المستضافة)

جميع الاختبارات هي استعلامات DNS قياسية يتعامل معها أي محلل يومياً.

</details>

<details>
<summary><b>لماذا تختلف النتائج بين التشغيلات؟</b></summary>

أداء DNS يختلف بسبب:
- ظروف الشبكة
- التخزين المؤقت لـ DNS (المحلل والوسيط)
- حمل الخادم
- تغييرات التوجيه الجغرافي

قم بتشغيل عدة تكرارات (`--iterations 5`) للحصول على نتائج أكثر اتساقاً.

</details>

---

## 🔗 الروابط والدعم

### رسمي

- **الموقع الإلكتروني**: [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)

### المجتمع

- **المناقشات**: [مناقشات GitHub](https://github.com/frankovo/dns-benchmark-tool/discussions)
- **القضايا**: [تقارير الأخطاء](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>
تنزيل الأداة
  • دعم الإدخال المضمّن للمحللين والمجالات
    • قدرات جديدة
    • التوافق العكسي
    • أمثلة الاستخدام
      • قبل (الملفات فقط كانت تعمل)
      • بعد (كلاهما يعمل)
      • محللات مسماة
      • إدخال مختلط
      • مفرد
  • 🔧 الأدوات المساعدة
    • إدارة المحلل
    • إدارة المجالات
    • نظرة عامة على الفئة
    • إدارة التكوين
  • دليل الاستخدام الكامل
    • اختبار أداء سريع
      • مسؤول الشبكة
      • مزود خدمة الإنترنت ومشغل الشبكة
      • المطور و DevOps
      • مدقق الأمان
      • تقنية معلومات المؤسسات
  • 🔍 تعديلات README للتصحيح النهائي
    • خيارات CLI جديدة
  • ⚡ أوامر CLI
    • 🚀 الأعلى
    • 📊 المقارنة
    • 🔄 المراقبة
    • 🌟 عرض الأوامر
  • 📊 تحسينات التحليل
  • ⚡ أفضل الممارسات
  • ⚙️ ملفات التكوين
    • تنسيق JSON للمحللين
    • تنسيق ملف النص للمجالات
  • تنسيقات الإخراج
    • إخراج CSV
    • تقرير Excel
    • تقرير PDF
    • 📄 تصدير PDF اختياري
      • التثبيت مع دعم PDF
      • الاستخدام
    • ⚠️ إعداد WeasyPrint (لتصدير PDF)
      • 🛠 لينكس (Debian/Ubuntu)
      • 🛠 macOS (Homebrew)
      • 🛠 ويندوز
      • ✅ التحقق من التثبيت
    • تصدير JSON
    • إنشاء تكوين نموذجي
  • تحسين الأداء
  • استكشاف الأخطاء وإصلاحها
    • وضع التصحيح
  • الأتمتة و CI
    • وظائف Cron
    • مثال على GitHub Actions
  • لقطات الشاشة
    • 1. تشغيل اختبار قياس CLI
    • 2. إخراج تقرير Excel
    • 3. ملخص تنفيذي PDF
    • 4. رسوم بيانية PDF
    • 5. رسوم بيانية Excel
    • 6. مراقبة الوقت الحقيقي
  • الحصول على المساعدة
  • سير عمل الإصدار
  • 🌐 لوحة معلومات BuildTools على الويب — متاحة الآن
    • ما هو متاح الآن (مجاني + محترف)
    • قادم في الربع الثاني 2026
    • قادم في الربع الثالث 2026
  • 🛣️ خريطة الطريق
    • ✅ الإصدار الحالي (إصدار CLI)
    • ✅ لوحة معلومات الويب (مباشرة)
    • 🔜 قادم في الربع الثاني 2026
      • الربع الثالث 2026
  • 🤝 المساهمة
    • طرق المساهمة
    • 🛠 التطوير وأوامر Makefile
    • الاستخدام الشائع
    • إرشادات الكود
  • ❓ الأسئلة الشائعة
  • 🔗 الروابط والدعم
    • رسمي
    • المجتمع
    • إحصائيات
  • الترخيص
  • الأمرالوظيفةمثال سريع
    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