بازگشت به نمونه کارها
RustTauriReactTypeScriptSecurity

آی‌پی چک (IP Check)

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

مسئله

توسعه‌دهندگان و فریلنسرهایی که به VPN وابسته‌اند — به‌ویژه در بازارهایی که ابزارهای هوش مصنوعی و سایر سرویس‌ها به‌طور کامل در دسترس نیستند — نیاز دارند که VPN هر ثانیه که آنلاین‌اند فعال بماند. وقتی تانل بی‌صدا قطع می‌شود، آی‌پی واقعی بلافاصله نشت می‌کند، و تا زمانی که کسی متوجه شود، حساب کاربری از قبل علامت‌گذاری یا مسدود شده است. کاربر نمی‌تواند تمام روز وضعیت اتصال را زیر نظر داشته باشد، و راهکار ساده‌لوحانه (استعلام هر چند صد میلی‌ثانیه از یک API عمومی بررسی آی‌پی) روزانه حدود ۱۷۰٬۰۰۰ درخواست به هر ارائه‌دهنده تولید می‌کند — کافی است تا خودِ ابزار بررسی‌کننده محدود یا مسدود شود.

راهکار

IP Check یک اپلیکیشن دسکتاپ ویندوزی متن‌باز است که حول یک تصمیم اصلی ساخته شده: تشخیص باید رویداد-محور باشد، نه استعلام‌محور (polling).

  • تشخیص فوری — با اتصال به Windows IP Helper API (NotifyIpInterfaceChange) رویدادهای تغییر شبکه را به‌صورت push دریافت می‌کند، پشتیبان آن یک بررسی مسیر/گیت‌وی محلی هر ۵۰۰ میلی‌ثانیه است که هرگز به شبکه دست نمی‌زند، تا خودِ مانیتور هرگز چیزی نباشد که محدود می‌شود.

  • اجماع، نه یک منبع واحد حقیقت — آی‌پی عمومی فقط در صورت تغییر واقعی یا ضربان کند دوباره تایید می‌شود، در برابر ۲ یا بیشتر ارائه‌دهنده‌ی مستقل بررسی می‌شود. یک ارائه‌دهنده‌ی مسدودشده جغرافیایی یا دروغ‌گو نمی‌تواند هشدار کاذب یا تاییدیه‌ی کاذب ایجاد کند.

  • یک کلید قطع واقعی (kill switch) — پس از فعال‌سازی، قطع تانل بلافاصله یک بلاک در فایروال پیشرفته‌ی ویندوز فعال می‌کند، با گزینه‌ی غیرفعال‌سازی کارت شبکه یا بستن اپلیکیشن‌های لیست‌سفید، پیش از آنکه هرگونه ترافیکی با آی‌پی واقعی خارج شود.

  • اسکن فعال نشتی — بررسی نشتی DNS، IPv6 و WebRTC، شامل یک کلاینت دست‌ساز STUN (RFC 5389) برای مسیر WebRTC.

در پس‌زمینه، معماری clean/hexagonal در چهار کریت (crate) پیاده‌سازی شده — یک ipcheck-core خالص (موجودیت‌ها و تریت‌های پورت، بدون I/O)، ipcheck-app (کیس‌های استفاده، فقط وابسته به تریت‌های هسته)، ipcheck-infra (آداپتورهای واقعی ویندوز/شبکه/دیتابیس)، و پوسته‌ی Tauri به‌عنوان ریشه‌ی ترکیب (composition root). این تفکیک یعنی کل منطق تشخیص و تصمیم‌گیری پوشش کامل تست واحد دارد، بدون آنکه هرگز به یک اینترفیس شبکه‌ی واقعی یا فایروال سیستم‌عامل دست بزند. تایپ‌های دامنه‌ی Rust بایندینگ‌های TypeScript خود را مستقیماً تولید می‌کنند (ts-rs)، تا بک‌اند Rust و رابط React هرگز از نظر شکل داده از هم واگرا نشوند.

نتیجه

تشخیص زیر یک ثانیه برای قطعی تانل VPN، تایید‌شده سرتاسر در برابر تغییرات واقعی کارت شبکه.

صفر هشدار کاذب از یک نقطه‌ی داده‌ی بد — اجماع چندارائه‌دهنده، رفتار نادرست یک ارائه‌دهنده را خنثی می‌کند.

کاملاً متن‌باز (MIT)، با مجموعه مستندات کامل — PRD، معماری، مدل تهدید STRIDE، طرح دیتابیس، قرارداد API، سیاست امنیتی و استراتژی تست — به‌همراه CI که fmt/clippy/تست‌ها را روی هر push اجرا می‌کند.

مخزن: github.com/Nikosonz/ip-check

این پروژه در کنار کار هوش مصنوعی و اتوماسیون من قرار می‌گیرد — یا ببینید برای مشتریان مستقیم چه می‌کنم، یا در تماس باشید.

پشته‌ی فناوری

  • پوسته‌ی اپلیکیشن: Tauri v2، Rust

  • فرانت‌اند: React 18، TypeScript، Zustand

  • داده: SQLite از طریق sqlx

  • یکپارچگی ویندوز: IP Helper API، فایروال پیشرفته (netsh advfirewall)، Win32 FFI ناایمن

  • ایمنی نوع: ts-rs برای تولید بایندینگ Rust به TypeScript

  • CI: GitHub Actions (fmt، clippy، گیت‌های تست)