زمانی که سانسورچی خبیث دروازههای اینترنت آزاد که حقوق اولیه هر انسانیه رو به بهونه های مختلف میبنده و فقط خودش باز میزاره و هرروز توییت میزنه و فقط چندتا سایت با منت برای مردم باز میکنه، پیدا کردن همین سایتهای متصل هم گاهی میشه یه عذاب واقعی. آدم باید ساعتها تست کنه ببینه کدوم بالا میاد کدوم نمیاد، اونم با این نت حلزونی گرونی ای که بهمون تحمیل کردن.
این پروژه یه اسکریپت ساده نوشته شده به زبان گولنگ هستن که باهاش میتونید لیست سایت های متصل رو به راحتی پیدا کید و سعی کنید در این شرایط کمی بقای دیجیتال داشته باشید
- چک کردن HTTP/HTTPS
- تشخیص هوشمند علت قطعی: فیلتر HTTP، بلاک TCP، فیلتر TLS، تایماوت و قطعی کامل
- آپدیت خودکار لیست سایتها از همین ریپو
- خروجی JSON برای آنالیزهای بعدی
- نمایش زنده و رنگی توی ترمینال
- پراسس همزمان با کانفیگ adjustable worker ها
چون گیت هاب ریلیز همچنان بسته مونده و نمیشه ازش استفاده کرد میتونید از این لینک ها برای دانلود باینری اماده استفاده کنید
بعدش میتونید به سادگی ازش توی ترمینال یا cmd استفاده کنید:
./netcheckerبرای استفاده راحت تر بهتره فایل باینری رو به مسیر path سیستم عامل خودمون ببرید و بتونید توی هر مسیری صداش کنید
# لینوکس
sudo mv netchecker-linux-amd64 /usr/local/bin/netchecker
sudo chmod +x /usr/local/bin/netchecker
# ویندوز cmd
move netchecker-windows-amd64.exe "%LOCALAPPDATA%\Microsoft\WindowsApps\netchecker.exe"
# و توی هر مسیری بزنید
netcheckerاگه Go رو سیستمت داری (version 1.21 به بالا):
git clone https://github.com/keyaruga33/netchecker.git
cd netchecker
go mod tidy
go build -o build/netchecker ./cmd/netchecker/بیلد کراس-پلتفرم:
# برای لینوکس
GOOS=linux GOARCH=amd64 go build -o build/netchecker-linux-amd64 ./cmd/netchecker/
# برای ویندوز
GOOS=windows GOARCH=amd64 go build -o build/netchecker-windows-amd64.exe ./cmd/netchecker/همینجوری اجراش کن، خودش بقیه کارارو میکنه:
./netcheckerبا این اجرا میره تمام url های محبوب رو چک میکنه که ببینه متصل هست یا نه و گزارش میده
اولین بار که اجرا میکنی، اگه فایل دامنه هارو رو نداشته باشی به صورت خودکار از این ریپو دانلودش میکنه و توی مسیر مربوط میزارتش
اگه خواستی دستی آپدیتش کنی:
./netchecker --updateمیتونی همه چی رو با آرگومان تنظیم کنی:
# با ۲۰۰ worker همزمان و تایماوت ۳۰ ثانیه
./netchecker -w 200 --http-timeout 30s
# فایل ورودی و خروجی سفارشی
./netchecker -u ~/my-sites.txt -o ~/report.json
# فقط یدونه بار سعی کنه (بدون retry)
./netchecker -r 0 -w 100
# همه پارامترها
./netchecker \
-u ~/.config/netchecker/domains.txt \
-o ~/report.json \
-w 200 \
--http-timeout 25s \
--tcp-timeout 5s \
--tls-timeout 8s \
-r 3 \
-a "Mozilla/5.0"
## فایل domains.txtفرمتش سادهست. هر خط یه دامنه یا URL کامل. میتونی با # دستهبندی کنی:
# شبکههای اجتماعی
https://twitter.com
https://telegram.org
https://instagram.com
# ایمیل
https://gmail.com
https://proton.me
# اخبار
https://bbc.com
https://dw.com
یه فایل JSON میسازه که توش وضعیت هر سایت رو دقیق نوشته:
{
"url": "https://twitter.com",
"category": "شبکههای اجتماعی",
"state": "open",
"status_code": 200,
"tcp_ok": true,
"tls_ok": true,
"duration_ms": 450,
"retries": 0
}State ها:
open- سالمه و وصلهhttp-block- TCP و TLS وصله ولی HTTP برنمیگرده (احتمالا DPI)tcp-only- فقط TCP بازه، TLS یا HTTP بستهستtcp-reset- TCP refuse میدهtls-fail- TCP وصله ولی TLS fail میشهtimeout- کلا تایماوتunreachable- DNS resolve نمیشه یا قطع کامل
چون وقتی اینترنت رو به بدترین شکل میبندن و قطع میکنن و بعد با یه مشت سایت وایتلیستشده برمون روشن میکنن - جوری که انگار منت سر ما گذاشتن - حداقل بدونیم از کدوم سوراخ میتونیم نفس بکشیم. اینترنت آزاد حق ماست، نه لطفی از طرف حاکمیت. تا روزی که اینترنت واقعی برگرده، حداقل با این ابزار میفهمیم توی این قرنطینه دیجیتال کجاها رو میشه سرک کشید.
اگر علاقه به همکاری توی این پروژه داشتید مخزن رو فورک کنید و پول ریکوئست بفرستید؛ کار هایی که میتونه مفید باشه:
- اضافه کردن سایت های بیشتر و کاربردی تر
- بهتر کردن نحوه تشخیص اتصال
- افزایش سرعت و بهنیگی ابزار
- و......
فقط با دادن یه ستاره به پروژه میتونید به من و کسای دیگه ای که ممکنه به این ابزار نیاز داشته باشن کمک کنید
لایسنس: MIT - آزاد مثل اینترنت که باید باشه.