Skip to content

Commit b910d70

Browse files
committed
Add interactive TUI with CLI flag pass-through
- Full bubbletea TUI: welcome → input → config → scan → results - 7 input sources: known resolvers, CIDR light/medium/full, combined, custom file - Dynamic config screen with E2E toggle, binary status, context-sensitive help - CLI flags pre-populate TUI config (--domain, --workers, --skip-ping, etc.) - In-TUI CLI flags option for typing flags directly from the welcome screen - Default command launches TUI (double-click findns.exe works on Windows) - Updated README.md and GUIDE.md with TUI documentation - Added .gitignore for build artifacts
1 parent 0e6fb6c commit b910d70

15 files changed

Lines changed: 2036 additions & 183 deletions

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
*.exe
2+
*.exe~
3+
results.json
4+
results.js

GUIDE.md

Lines changed: 86 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,17 @@
22

33
# راهنمای کامل findns - اسکنر DNS Resolver
44

5-
**شروع سریع (فقط ۳ دستور):**
5+
**شروع سریع — حالت تعاملی (ساده‌ترین روش):**
6+
7+
</div>
8+
9+
```bash
10+
findns tui
11+
```
12+
13+
<div dir="rtl">
14+
15+
یا با خط فرمان (۳ دستور):
616

717
</div>
818

@@ -18,7 +28,7 @@ findns scan -i resolvers.txt -o results.json --domain t.example.com # 2. اس
1828
1929
**فهرست مطالب:**
2030

21-
[1. findns چیست؟](#-findns-چیست-و-چه-کار-میکند) | [2. نصب](#-نصب-و-راهاندازی) | [🪟 ویندوز](#اجرا-روی-ویندوز-) | [3. دریافت لیست](#-دریافت-لیست-resolverها-fetch) | [3.5 ریزالورهای ایرانی](#-دستور-local---resolverهای-ایرانی-داخلی) | [3.6 تنظیم دامنه تانل](#-تنظیم-دامنه-تانل-مهم--قبل-از-اسکن-بخوانید) | [4. اسکن کامل](#-اسکن-کامل-scan---دستور-اصلی) | [5. دستورات جداگانه](#-دستورات-جداگانه) | [6. Chain](#-پایپلاین-سفارشی-chain) | [7. عیب‌یابی](#-عیبیابی-مراحل-اسکن) | [فلگ‌ها](#%EF%B8%8F-فلگهای-عمومی) | [8. ورودی/خروجی](#-فرمت-ورودی-و-خروجی) | [9. سناریوها](#-سناریوهای-عملی) | [10. نکات](#-نکات-و-ترفندها)
31+
[1. findns چیست؟](#-findns-چیست-و-چه-کار-میکند) | [🖥️ TUI](#-حالت-تعاملی-tui---ساده‌ترین-روش-استفاده) | [2. نصب](#-نصب-و-راهاندازی) | [🪟 ویندوز](#اجرا-روی-ویندوز-) | [3. دریافت لیست](#-دریافت-لیست-resolverها-fetch) | [3.5 ریزالورهای ایرانی](#-دستور-local---resolverهای-ایرانی-داخلی) | [3.6 تنظیم دامنه تانل](#-تنظیم-دامنه-تانل-مهم--قبل-از-اسکن-بخوانید) | [4. اسکن کامل](#-اسکن-کامل-scan---دستور-اصلی) | [5. دستورات جداگانه](#-دستورات-جداگانه) | [6. Chain](#-پایپلاین-سفارشی-chain) | [7. عیب‌یابی](#-عیبیابی-مراحل-اسکن) | [فلگ‌ها](#%EF%B8%8F-فلگهای-عمومی) | [8. ورودی/خروجی](#-فرمت-ورودی-و-خروجی) | [9. سناریوها](#-سناریوهای-عملی) | [10. نکات](#-نکات-و-ترفندها)
2232

2333
---
2434

@@ -133,6 +143,80 @@ resolverهایی که همه این مراحل را پاس کنند، **با ا
133143

134144
---
135145

146+
## 🖥️ حالت تعاملی (TUI) — ساده‌ترین روش استفاده
147+
148+
اگر نمی‌خواهید فلگ‌ها و دستورات را حفظ کنید، از حالت تعاملی استفاده کنید:
149+
150+
</div>
151+
152+
```bash
153+
findns tui
154+
```
155+
156+
<div dir="rtl">
157+
158+
TUI شما را قدم به قدم راهنمایی می‌کند:
159+
160+
### صفحه ۱: انتخاب حالت
161+
162+
- **UDP** — اسکن DNS ساده (پورت 53)
163+
- **DoH** — اسکن DNS-over-HTTPS (پورت 443)
164+
165+
با کلیدهای `↑/↓` انتخاب کنید و `Enter` بزنید.
166+
167+
### صفحه ۲: انتخاب ورودی
168+
169+
| گزینه | توضیح |
170+
|-------|-------|
171+
| Known resolvers | 7,854 ریزالور شناخته‌شده ایرانی (تعبیه‌شده در برنامه) |
172+
| CIDR scan — light | ~19K آی‌پی — 10 نمونه تصادفی از هر بلوک CIDR |
173+
| CIDR scan — medium | ~96K آی‌پی — 50 نمونه از هر بلوک |
174+
| CIDR scan — full | ~10.8M آی‌پی — کل فضای آی‌پی ایران (بسیار کند) |
175+
| Combined — light | ریزالورها + CIDR لایت (~27K آی‌پی) |
176+
| Combined — medium | ریزالورها + CIDR مدیوم (~104K آی‌پی) |
177+
| Custom file | بارگذاری فایل دلخواه (متنی یا JSON) |
178+
179+
### صفحه ۳: تنظیمات اسکن
180+
181+
تنظیمات به ۴ بخش تقسیم شده:
182+
183+
**بخش Tunnel:**
184+
- **Domain** — دامنه تانل (مثلاً `t.example.com`). خالی بگذارید برای تست ساده ریزالور
185+
186+
**بخش General:**
187+
- **Output** — فایل خروجی (پیش‌فرض: `results.json`)
188+
- **Workers** — تعداد worker همزمان (پیش‌فرض: 50)
189+
- **Timeout** — تایم‌اوت به ثانیه (پیش‌فرض: 3)
190+
- **Count** — تعداد تلاش برای هر ریزالور (پیش‌فرض: 3)
191+
192+
**بخش Options:**
193+
- **Skip Ping** — رد کردن تست ping (مفید اگر شبکه شما ICMP را بلاک می‌کند)
194+
- **Skip NXDOMAIN** — رد کردن تست تشخیص هایجک DNS
195+
- **EDNS Check** — تست پشتیبانی EDNS0 (مهم برای سرعت تانل)
196+
197+
**بخش E2E (اختیاری):**
198+
- **E2E Testing** — به صورت پیش‌فرض خاموش است. وقتی روشن کنید:
199+
- وضعیت باینری‌ها را نشان می‌دهد (✔ یا ✘ برای `dnstt-client`، `slipstream-client`، `curl`)
200+
- فیلدهای Pubkey، Cert، Test URL، Proxy Auth و E2E Timeout ظاهر می‌شوند
201+
- بدون باینری‌ها اسکن شروع نمی‌شود — ابتدا آن‌ها را نصب کنید
202+
203+
هر فیلد یک توضیح در پایین صفحه نشان می‌دهد.
204+
205+
**کلیدها:** `Space` برای تغییر وضعیت، `Tab/↓` فیلد بعدی، `Enter` روی Start Scan.
206+
207+
### صفحه ۴: پیشرفت اسکن
208+
209+
نوار پیشرفت هر مرحله را با تعداد موفق/ناموفق نشان می‌دهد.
210+
211+
- `q` — لغو (منتظر اتمام workerها می‌ماند)
212+
- `Ctrl+C` — خروج فوری
213+
214+
### صفحه ۵: نتایج
215+
216+
جدول رتبه‌بندی ریزالورها با تمام متریک‌ها. `↑/↓` برای اسکرول. نتایج در فایل JSON ذخیره شده‌اند.
217+
218+
---
219+
136220
## 2. نصب و راه‌اندازی
137221

138222
### روش 1: دانلود باینری آماده (پیشنهادی)

0 commit comments

Comments
 (0)