Skip to content

keyaruga33/netchecker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NetChecker

زمانی که سانسورچی خبیث دروازه‌های اینترنت آزاد که حقوق اولیه هر انسانیه رو به بهونه های مختلف میبنده و فقط خودش باز میزاره و هرروز توییت میزنه و فقط چندتا سایت با منت برای مردم باز میکنه، پیدا کردن همین سایت‌های متصل هم گاهی می‌شه یه عذاب واقعی. آدم باید ساعت‌ها تست کنه ببینه کدوم بالا میاد کدوم نمیاد، اونم با این نت حلزونی گرونی ای که بهمون تحمیل کردن.

این پروژه یه اسکریپت ساده نوشته شده به زبان گولنگ هستن که باهاش میتونید لیست سایت های متصل رو به راحتی پیدا کید و سعی کنید در این شرایط کمی بقای دیجیتال داشته باشید

چیزایی که داره

  • چک کردن 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 - آزاد مثل اینترنت که باید باشه.

About

ابزاری ساده برای بررسی اتصال سرویس های محبوب در اینترنت محدود و وایت لیست شده

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages