ENSHunter is a high-performance Go tool that helps you find available Ethereum Name Service (ENS) domains from a list. It scans domains in parallel, checks their availability directly on the Ethereum blockchain, and saves the available domains to a file.
- 🚀 High Performance: Check multiple domains concurrently using goroutines
- 📊 Progress Visualization: Real-time progress bar showing scan completion
- 🔄 Auto-retry: Automatic retry for failed requests with configurable attempts
- ⏱️ Rate Limiting: Configurable request rate to avoid API throttling
- 🎛️ Configurable: Extensive command-line options for customization
- 🧠 Smart Processing: Handles domains with or without
.ethsuffix - 🔐 Secure Configuration: Store API keys securely in config files
- Go 1.18 or higher
- Infura API key (Get one for free here)
- Internet connection to access Ethereum network
The easiest way to install ENSHunter is via Go's module system:
go install github.com/xPOURY4/ENSHunter@latestAfter installation, you should be able to run enshunter from your terminal.
For the latest features or to modify the code:
# Clone the repository
git clone https://github.com/xPOURY4/ENSHunter.git
# Navigate to the project directory
cd ENSHunter
# Build the executable
go build -o enshunter
# Optional: Move to your PATH
sudo mv enshunter /usr/local/bin/ # Linux/macOS
# OR
# Add to your PATH manually on WindowsPre-built binaries for various platforms will be available on the Releases page.
The application requires the following Go packages:
go get github.com/ethereum/go-ethereum
go get github.com/schollz/progressbar/v3
go get github.com/fatih/color
go get github.com/joho/godotenvENSHunter supports several ways to configure your API keys and settings:
Create a .env file in the directory where you run the application:
INFURA_KEY=your_infura_key_here
WORKERS=10
RATE_LIMIT=50
RETRIES=3
TIMEOUT=30
ENSHunter will check for a config file at ~/.enshunter/config.json. You can save your current settings with:
enshunter -infura YOUR_INFURA_KEY -workers 10 -save-configThis creates a configuration file like:
{
"infura_key": "your_infura_key",
"workers": 10,
"rate_limit": 50,
"retries": 3,
"timeout": 30
}These override any settings from config files.
enshunter -input domains.txt -output available.txtenshunter \
-infura YOUR_INFURA_KEY \
-input domains.txt \
-output available.txt \
-workers 10 \
-rate 50 \
-retries 3 \
-timeout 30 \
-verbose \
-save-config| Argument | Description | Default |
|---|---|---|
-infura |
Your Infura project ID | From config |
-input |
Input file containing domain names | esn.txt |
-output |
Output file for available domains | ens_available.txt |
-workers |
Number of concurrent workers | From config or 5 |
-rate |
Rate limit in milliseconds between requests | From config or 100 |
-verbose |
Enable verbose logging | false |
-retries |
Number of retries for failed requests | From config or 3 |
-timeout |
Request timeout in seconds | From config or 30 |
-save-config |
Save current settings to config file | false |
Create a text file with one domain name per line. The domain names can be with or without the .eth suffix:
example
test123
cool-domain.eth
myfavoritename
You can find a sample input file at esn.txt.sample.
When the program completes, you'll see a summary like this:
Summary:
Total domains checked: 150
Available domains: 23
Errors: 2
Available domains saved to: available.txt
The output file will contain a list of available domains with the .eth suffix:
example.eth
test123.eth
myfavoritename.eth
ENSHunter connects directly to the Ethereum blockchain using the Ethereum Name Service (ENS) contracts through Infura's API. For each domain in your input file:
- The program checks if the domain is already registered
- If available, it's added to the output file
- The process continues until all domains are checked
The application uses goroutines to perform multiple checks simultaneously, significantly speeding up the process compared to sequential checking.
- Finding short or memorable ENS domains still available for registration
- Bulk checking domain availability for clients or personal use
- Monitoring domain availability for future registration
- Finding valuable domains before others discover them
- Rate limiting: If you encounter rate limiting errors, increase the
-ratevalue - Timeout errors: Try increasing the
-timeoutvalue or reducing the number of workers - Missing API key: Ensure your Infura API key is provided via one of the configuration methods
Use the -verbose flag to enable detailed logging, which can help identify issues:
enshunter -input domains.txt -verboseFuture features planned for ENSHunter:
- Price estimation for domain registration
- Domain expiration monitoring
- Web interface for easier use
- Support for additional name services beyond ENS
- Batch domain registration
Contributions, issues, and feature requests are welcome! Feel free to check the issues page for open issues or create a new one.
To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is MIT licensed.
@TheRealPourya - Twitter
Project Link: https://github.com/xPOURY4/ENSHunter
** ENS** یک ابزار قدرتمند نوشته شده با زبان Go است که به شما کمک میکند دامنههای قابل ثبت سرویس نام اتریوم (ENS) را از یک لیست پیدا کنید. این ابزار دامنهها را به صورت موازی اسکن میکند، قابلیت ثبت آنها را مستقیماً روی بلاکچین اتریوم بررسی میکند و دامنههای قابل ثبت را در یک فایل ذخیره میکند.
- 🚀 کارایی بالا: بررسی همزمان چندین دامنه با استفاده از goroutines
- 📊 نمایش پیشرفت: نوار پیشرفت در زمان واقعی برای نمایش وضعیت اسکن
- 🔄 تلاش مجدد خودکار: تلاش مجدد خودکار برای درخواستهای ناموفق با تعداد قابل تنظیم
- ⏱️ کنترل نرخ درخواست: نرخ درخواست قابل تنظیم برای جلوگیری از محدودیت API
- 🎛️ قابل تنظیم: گزینههای گسترده خط فرمان برای سفارشیسازی
- 🧠 پردازش هوشمند: کار با دامنههای با یا بدون پسوند
.eth - 🔐 پیکربندی امن: ذخیره کلیدهای API به صورت امن در فایلهای پیکربندی
- Go 1.18 یا بالاتر
- کلید API اینفورا (دریافت رایگان از اینجا)
- اتصال به اینترنت برای دسترسی به شبکه اتریوم
سادهترین روش نصب شکارچی ENS از طریق سیستم ماژول Go است:
go install github.com/xPOURY4/ENSHunter@latestپس از نصب، باید بتوانید enshunter را از ترمینال خود اجرا کنید.
برای آخرین ویژگیها یا تغییر کد:
# کلون کردن مخزن
git clone https://github.com/xPOURY4/ENSHunter.git
# رفتن به دایرکتوری پروژه
cd ENSHunter
# ساخت فایل اجرایی
go build -o enshunter
# اختیاری: انتقال به PATH
sudo mv enshunter /usr/local/bin/ # لینوکس/مک
# یا
# اضافه کردن به PATH به صورت دستی در ویندوزنسخههای از پیش ساخته شده برای پلتفرمهای مختلف در صفحه Releases در دسترس خواهند بود.
این برنامه به پکیجهای Go زیر نیاز دارد:
go get github.com/ethereum/go-ethereum
go get github.com/schollz/progressbar/v3
go get github.com/fatih/color
go get github.com/joho/godotenvشکارچی ENS از چندین روش برای پیکربندی کلیدهای API و تنظیمات پشتیبانی میکند:
یک فایل .env در دایرکتوری اجرای برنامه ایجاد کنید:
INFURA_KEY=کلید_اینفورای_شما
WORKERS=10
RATE_LIMIT=50
RETRIES=3
TIMEOUT=30
شکارچی ENS یک فایل پیکربندی در مسیر ~/.enshunter/config.json را بررسی میکند. میتوانید تنظیمات فعلی خود را با دستور زیر ذخیره کنید:
enshunter -infura کلید_اینفورای_شما -workers 10 -save-configاین دستور یک فایل پیکربندی مانند زیر ایجاد میکند:
{
"infura_key": "کلید_اینفورای_شما",
"workers": 10,
"rate_limit": 50,
"retries": 3,
"timeout": 30
}این آرگومانها هر تنظیماتی از فایلهای پیکربندی را لغو میکنند.
enshunter -input دامنهها.txt -output دامنههای_موجود.txtenshunter \
-infura کلید_اینفورای_شما \
-input دامنهها.txt \
-output دامنههای_موجود.txt \
-workers 10 \
-rate 50 \
-retries 3 \
-timeout 30 \
-verbose \
-save-config| آرگومان | توضیح | پیشفرض |
|---|---|---|
-infura |
شناسه پروژه اینفورای شما | از پیکربندی |
-input |
فایل ورودی حاوی نامهای دامنه | esn.txt |
-output |
فایل خروجی برای دامنههای قابل ثبت | ens_available.txt |
-workers |
تعداد کارگران همزمان | از پیکربندی یا 5 |
-rate |
محدودیت نرخ به میلیثانیه بین درخواستها | از پیکربندی یا 100 |
-verbose |
فعالسازی گزارشدهی دقیق | false |
-retries |
تعداد تلاشهای مجدد برای درخواستهای ناموفق | از پیکربندی یا 3 |
-timeout |
مهلت درخواست به ثانیه | از پیکربندی یا 30 |
-save-config |
ذخیره تنظیمات فعلی در فایل پیکربندی | false |
یک فایل متنی با یک نام دامنه در هر خط ایجاد کنید. نامهای دامنه میتوانند با یا بدون پسوند .eth باشند:
example
test123
cool-domain.eth
myfavoritename
شما میتوانید یک نمونه فایل ورودی را در esn.txt.sample پیدا کنید.
وقتی برنامه تمام میشود، یک خلاصه مانند این خواهید دید:
خلاصه:
کل دامنههای بررسی شده: 150
دامنههای قابل ثبت: 23
خطاها: 2
دامنههای قابل ثبت در فایل زیر ذخیره شدند: available.txt
فایل خروجی شامل لیستی از دامنههای قابل ثبت با پسوند .eth خواهد بود:
example.eth
test123.eth
myfavoritename.eth
شکارچی ENS با استفاده از API اینفورا مستقیماً به بلاکچین اتریوم و قراردادهای هوشمند سرویس نام اتریوم (ENS) متصل میشود. برای هر دامنه در فایل ورودی شما:
- برنامه بررسی میکند که آیا دامنه قبلاً ثبت شده است
- اگر قابل ثبت باشد، به فایل خروجی اضافه میشود
- این فرآیند تا بررسی تمام دامنهها ادامه مییابد
برنامه از goroutines برای انجام چندین بررسی به طور همزمان استفاده میکند، که سرعت فرآیند را در مقایسه با بررسی متوالی به طور قابل توجهی افزایش میدهد.
- یافتن دامنههای ENS کوتاه یا جذاب که هنوز برای ثبت موجود هستند
- بررسی دستهای قابلیت ثبت دامنه برای مشتریان یا استفاده شخصی
- نظارت بر قابلیت ثبت دامنهها برای ثبت در آینده
- یافتن دامنههای ارزشمند قبل از اینکه دیگران آنها را کشف کنند
- محدودیت نرخ: اگر با خطاهای محدودیت نرخ مواجه شدید، مقدار
-rateرا افزایش دهید - خطاهای زمان انتظار: مقدار
-timeoutرا افزایش دهید یا تعداد کارگران را کاهش دهید - کلید API گم شده: اطمینان حاصل کنید که کلید API اینفورای شما از طریق یکی از روشهای پیکربندی ارائه شده است
از پرچم -verbose برای فعالسازی گزارشدهی دقیق استفاده کنید، که میتواند به شناسایی مشکلات کمک کند:
enshunter -input دامنهها.txt -verboseویژگیهای آینده برنامهریزی شده برای شکارچی ENS:
- تخمین قیمت برای ثبت دامنه
- نظارت بر انقضای دامنه
- رابط وب برای استفاده آسانتر
- پشتیبانی از سرویسهای نام دیگر علاوه بر ENS
- ثبت دامنه به صورت دستهای
مشارکتها، گزارش مشکلات و درخواستهای ویژگی جدید مورد استقبال قرار میگیرند! لطفاً صفحه مشکلات را برای مشکلات باز بررسی کنید یا یک مورد جدید ایجاد کنید.
برای مشارکت:
- مخزن را فورک کنید
- یک شاخه ویژگی ایجاد کنید (
git checkout -b feature/amazing-feature) - تغییرات خود را کامیت کنید (
git commit -m 'Add some amazing feature') - به شاخه پوش کنید (
git push origin feature/amazing-feature) - یک درخواست Pull باز کنید
این پروژه تحت مجوز MIT منتشر شده است.
@TheRealPourya - توییتر
لینک پروژه: https://github.com/xPOURY4/ENSHunter
یک فایل متنی با یک نام دامنه در هر خط ایجاد کنید. نامهای دامنه میتوانند با یا بدون پسوند .eth باشند:
example
test123
cool-domain.eth
myfavoritename
خلاصه:
کل دامنههای بررسی شده: 150
دامنههای قابل ثبت: 23
خطاها: 2
دامنههای قابل ثبت در فایل زیر ذخیره شدند: available.txt
- یافتن دامنههای ENS کوتاه یا جذاب که هنوز برای ثبت موجود هستند
- بررسی دستهای قابلیت ثبت دامنه برای مشتریان یا استفاده شخصی
- نظارت بر قابلیت ثبت دامنهها برای ثبت در آینده
مشارکتها، گزارش مشکلات و درخواستهای ویژگی جدید مورد استقبال قرار میگیرند! لطفاً صفحه مشکلات را بررسی کنید.
این پروژه تحت مجوز MIT منتشر شده است.
@TheRealPourya - توییتر