BUZZARD NetPulse — آنالیزور کیفیت اینترنت
==========================================

اجرا:
  فقط روی BUZZARD-NetPulse.exe دابل‌کلیک کنید. نصب لازم نیست، پایتون/دات‌نت/هیچ چیز دیگه لازم نیست.
  روی هر ویندوز ۱۰/۱۱ (۶۴ بیتی) اجرا می‌شه؛ می‌تونید روی فلش بذارید و همه‌جا ببرید.
  برنامه یک پنجره‌ی مستقل (با Edge یا Chrome سیستم) باز می‌کنه.

امکانات:
  - تست زنده پینگ به سرورهای ایرانی، خارجی و گیم (Steam, Battle.net, Riot, Epic و دیتاسنترهای AWS بحرین/امارات/فرانکفورت/...)
  - پینگ لحظه‌ای، میانگین، کمینه/بیشینه، P95، جیتر، پکت لاس، تایم‌اوت، زمان DNS
  - امتیاز ۰ تا ۱۰۰ و تحلیل خودکار (مثلاً تشخیص اختلال بین‌الملل وقتی داخلی سالمه)
  - تست سرعت دانلود از چند سرور
  - اضافه کردن سرور دلخواه (مثلاً IP سرور گیم: 1.2.3.4:27015)
  - تنظیم فاصله تست و تایم‌اوت
  - خروجی گزارش CSV (با اکسل باز می‌شه)
  - دو زبانه فارسی / انگلیسی (دکمه EN / فا بالای صفحه)

مرکز گیمینگ (تب «مرکز گیمینگ»):
  - ۱۳ بازی: CS2، Dota 2، Deadlock، World of Warcraft، Overwatch 2، League of Legends، VALORANT،
    Fortnite، PUBG، Apex Legends، Call of Duty/Warzone، Rainbow Six Siege، Rocket League
  - روی هر بازی کلیک کنید ← «شروع تست سرورها»: تک‌تک سرورهای آن بازی با چند پکت تست می‌شوند
    (پینگ، جیتر، لاس، P95) و بهترین سرور + رتبه‌بندی + رادار پینگ + نکته تنظیمات همان بازی نمایش داده می‌شود.
  - «تست همه بازی‌ها»: همه بازی‌ها پشت سر هم تست می‌شوند و جدول نتایج کلی ساخته می‌شود.
  - CS2 / Dota 2 / Deadlock: لیست کامل سرورهای Valve هر بار زنده از Steam گرفته می‌شود
    (در پوشه cache ذخیره می‌شود تا اگر Steam بعداً در دسترس نبود هم کار کند).
  - برچسب «مستقیم» = خود سرور/رله بازی تست شده. «دیتاسنتر هم‌شهر» = بازی آدرس پینگ عمومی ندارد
    و دیتاسنتر ابری همان شهر سنجیده شده (عدد واقعی بازی معمولاً نزدیک به همین است).

انتخاب منطقه (کارت «انتخاب منطقه‌ها برای تست» در صفحه هر بازی):
  - روی هر منطقه بزنید تا روشن/خاموش شود، یا با دکمه‌های قاره (اروپا، خاورمیانه، آسیا، ...) یک‌جا انتخاب کنید.
  - تست سرورها و تست پایداری فقط روی منطقه‌های انتخاب‌شده اجرا می‌شوند. انتخاب برای هر بازی ذخیره می‌شود.

🎯 چک قبل از Find Match (دکمه سبز در صفحه هر بازی، حدود ۲۵ ثانیه):
  - خود مسابقه با پکت‌های UDP اجرا می‌شود ولی لابی و مچ‌میکینگ با TCP؛ برای همین ممکن است پینگ معمولی
    سالم باشد ولی بازی در لود گیر کند.
  - برای منطقه‌های AWS، ترافیک UDP را به «UDP ping beacon» رسمی آمازون در همان منطقه می‌فرستد
    (gamelift-ping.<region>.api.aws پورت 7770) و هم‌زمان با پینگ معمولی مقایسه می‌کند.
  - نتیجه هر منطقه: آماده / UDP ناپایدار / UDP قطع / ناپایدار / در دسترس نیست — و بهترین منطقه برای Find Match.
  - تشخیص «رد فعالانه»: برنامه فرق می‌گذارد بین پکتی که بی‌جواب می‌ماند (مشکل مسیر/کیفیت) و اتصالی که فوراً
    رد می‌شود (Reset / Refused / Unreachable) — دومی امضای مسدودسازی عمدی است، نه ضعف اینترنت.
    تعداد ردها و آدرس روتری که جواب رد داده هم نمایش داده می‌شود. در تست سرورها هم کنار هر سرور «⛔ رد شد» می‌آید.
  - اگر فایروال ویندوز پرسید، Allow بزنید (برای ارسال UDP لازم است).

تست پایداری (دکمه «⏱ تست پایداری» در صفحه هر بازی):
  - همه سرورهای بازی هم‌زمان ۱ تا ۱۰ دقیقه پیوسته پینگ می‌شوند.
  - «قطعی» = ۳ پکت یا بیشتر پشت سر هم گم شود؛ همان چیزی که باعث گیر کردن در لود یا دیسکانکت می‌شود
    حتی وقتی میانگین پینگ خوب است. برای هر منطقه خط زمانی رنگی (سالم / اسپایک / لاس / قطعی) نشان داده می‌شود
    و پایدارترین منطقه معرفی می‌شود. برای PUBG پیشنهاد: ۵ تا ۱۰ دقیقه.

بررسی مسیر / Route check (دکمه «⤳ مسیر» کنار هر سرور، یا کارت «بررسی مسیر»):
  - مثل WinMTR: تک‌تک روترهای بین شما و سرور بازی چند ده بار پینگ می‌شوند.
  - خودکار تحلیل می‌کند که لاس واقعی از کدام هاپ شروع می‌شود (مودم شما / شبکه ISP / بعد از لینک بین‌الملل / نزدیک سرور)
    و بیشترین تأخیر کجا اضافه می‌شود. لاس هاپ‌های وسط که به مقصد نمی‌رسد را «مشکل واقعی نیست» تشخیص می‌دهد.
  - فقط روی ویندوز. برای نتیجه دقیق ۶۰ دور یا بیشتر انتخاب کنید.
  - سه تست (سرورها / پایداری / مسیر) هم‌زمان اجرا نمی‌شوند تا روی نتیجه هم اثر نگذارند.

عکس بازی‌ها:
  - برای CS2، Dota 2، Deadlock، Overwatch 2، Apex، PUBG، Call of Duty، Rainbow Six Siege و Rocket League
    برنامه اولین بار عکس رسمی بازی را از فروشگاه Steam می‌گیرد و در پوشه cache\art ذخیره می‌کند
    (دفعات بعد بدون اینترنت هم نمایش داده می‌شود).
  - WoW، LoL، VALORANT و Fortnite روی Steam نیستند و طرح اختصاصی برنامه را دارند.
  - عکس دلخواه خودتان (برای هر بازی، اولویت با عکس شماست): در پوشه art کنار exe بگذارید (jpg / png / webp):
      cs2  dota2  deadlock  wow  ow2  lol  valorant  fortnite  pubg  apex  cod  r6  rl
    مثلاً art\wow.jpg  — برای بنر بزرگ بالای صفحه می‌توانید یک عکس عریض جدا هم بگذارید: art\wow_hero.jpg
  - اگر Steam در دسترس نبود، برنامه گیر نمی‌کند و همان طرح پیش‌فرض را نشان می‌دهد.

خروج: پنجره را ببندید یا دکمه ⏻ را بزنید — برنامه خودش ظرف چند ثانیه کامل بسته می‌شود
  (دیگر در پس‌زمینه باز نمی‌ماند و فایل را می‌شود پاک یا جابه‌جا کرد).

نکته‌ها:
  - اگر ویندوز SmartScreen هشدار داد: More info ← Run anyway (چون فایل امضای دیجیتال نداره).
  - اگر فایروال پرسید، Allow بزنید (برنامه فقط روی 127.0.0.1 گوش می‌ده و از بیرون در دسترس نیست).
  - در داشبورد شبکه روش اندازه‌گیری TCP Ping است و در مرکز گیمینگ ICMP واقعی (مثل دستور ping ویندوز، بدون نیاز به ادمین) و در صورت لزوم TCP؛ بدون دسترسی ادمین کار می‌کنه و وقتی ICMP بسته‌ست هم جواب می‌ده.
    عددش معمولاً چند میلی‌ثانیه از ping معمولی بیشتره.

ساخت مجدد از سورس (اختیاری، نیاز به Go):
  set GOOS=windows& go build -trimpath -ldflags "-s -w -H windowsgui" -o BUZZARD-NetPulse.exe .
