=== IranCheck – ایران‌چک ===
Contributors: mihancyber
Tags: iran, uptime, monitoring, ping, filtering
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

دسترسی سایت یا سرور خود را از داخل ایران و از سراسر جهان بسنجید؛ تشخیص فیلترینگ و تحریم، مانیتورینگ آپ‌تایم و هشدار.

== Description ==

ایران‌چک قدرت سرویس check-host.net را به پیشخوان وردپرس شما می‌آورد و مخصوص صاحبان سایت‌های ایرانی ساخته شده است. یک دامنه، IP یا آدرس وارد کنید و در چند ثانیه ببینید سایت شما از ۶ نود داخل ایران (تهران، شیراز و قم، روی اپراتورهای مختلف) و از نودهای سراسر جهان چه وضعی دارد.

**In English:** IranCheck checks whether a website or server is reachable from inside Iran and from the rest of the world, using the public check-host.net API. It compares Iranian and foreign nodes to detect filtering and geo-blocking, monitors uptime, and sends alerts via Telegram, Bale and email.

**تشخیص خودکار.** به‌جای عددهای خام، توضیح می‌گیرید:

* *در دسترس* – همهٔ نودها پاسخ سالم گرفتند.
* *احتمال فیلترینگ* – نودهای ایران Timeout یا Reset می‌گیرند ولی نودهای خارجی پاسخ عادی دارند.
* *تحریم ایران* – نودهای ایران کد ۴۰۳/۴۵۱ می‌گیرند ولی نودهای خارجی ۲۰۰ (محدودیت جغرافیایی از نوع تحریم).
* *مسدود برای خارج* – نودهای خارجی رد می‌شوند ولی نودهای ایران مشکلی ندارند.
* *کند*، *ناقص* و *قطع* – همراه با دلیل.

**انواع بررسی:** HTTP، پینگ، TCP، UDP، DNS و تریس‌روت.

**حالت‌های هوشمند:** «مقایسهٔ ایران و جهان»، «آیا در ایران فیلتر است؟»، «آیا ایرانی‌ها را تحریم می‌کند؟» یا انتخاب دستی نودها.

**مانیتورینگ.** هر بررسی را به مانیتوری تبدیل کنید که هر ۱ تا ۱۴۴۰ دقیقه اجرا شود. آپ‌تایم ایران و خارج جداگانه حساب می‌شود و هر تغییر وضعیت با زمان شروع، پایان و علت احتمالی به‌عنوان رویداد ثبت می‌شود.

**هشدار** از طریق تلگرام، بله (ble.ir) و ایمیل. فقط هنگام تغییر وضعیت یا در هر خطا، همراه با خلاصهٔ روزانه و ساعات سکوت.

**ابزار عمومی.** با شورت‌کد `[irancheck]` یا بلوک ایران‌چک، ابزار بررسی را در اختیار بازدیدکنندگان سایت بگذارید. با محدودیت ساعتی برای هر IP و کپچای ریاضی داخلی که به هیچ سرویس خارجی نیاز ندارد.

**سازگار با فارسی.** چیدمان راست‌به‌چپ، تاریخ شمسی، ارقام فارسی و پشتیبانی از دامنه‌های فارسی (IDN). ترجمهٔ فارسی رابط افزونه از طریق translate.wordpress.org ارائه می‌شود.

**REST API.** همهٔ امکانات زیر مسیر `irancheck/v1` با کلید API برای ابزارهای دیگر در دسترس است.

= شورت‌کد =

`[irancheck types="http,ping" scope="both" title="آیا سایت شما از ایران باز می‌شود؟"]`

* `types` – هر ترکیبی از `http,ping,tcp,dns`.
* `scope` – `both` (ایران و جهان)، `iran` یا `world`.

= سرویس‌های خارجی =

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

* **check-host.net** – همهٔ بررسی‌ها با API عمومی check-host.net انجام می‌شود. نام میزبان یا آدرسی که وارد می‌کنید به `check-host.net` ارسال و نتیجه از همان‌جا دریافت می‌شود. فهرست نودها هم از همان‌جا گرفته می‌شود. این سرویس صفحهٔ جداگانه‌ای برای شرایط استفاده یا حریم خصوصی منتشر نکرده است؛ ببینید: [درباره](https://check-host.net/about)، [پرسش‌های متداول](https://check-host.net/about/faq) و [مستندات API](https://check-host.net/about/api).
* **Telegram Bot API** (`api.telegram.org`) – فقط اگر هشدار تلگرام را فعال کنید؛ متن هشدار به چتی که تنظیم کرده‌اید ارسال می‌شود. [شرایط](https://telegram.org/tos) · [حریم خصوصی](https://telegram.org/privacy)
* **Bale Bot API** (`tapi.bale.ai`) – فقط اگر هشدار بله را فعال کنید؛ متن هشدار به چتی که تنظیم کرده‌اید ارسال می‌شود. [شرایط](https://ble.ir/terms) · [حریم خصوصی](https://ble.ir/privacy)
* **ایمیل** – با تابع `wp_mail()` خود وردپرس ارسال می‌شود و این افزونه با هیچ سرویس خارجی تماس نمی‌گیرد.

هیچ داده‌ای برای سازندهٔ افزونه ارسال نمی‌شود.

== Installation ==

1. پوشهٔ `irancheck` را در `/wp-content/plugins/` بارگذاری کنید یا افزونه را از مخزن وردپرس نصب کنید.
2. افزونه را فعال کنید.
3. از **ایران‌چک ← تنظیمات** هشدارها را تنظیم کنید و اولین بررسی را از **ایران‌چک ← بررسی جدید** اجرا کنید.

برای اجرای دقیق مانیتورها در زمان مقرر، WP-Cron را در `wp-config.php` غیرفعال کنید (`define( 'DISABLE_WP_CRON', true );`) و `wp-cron.php` را هر دقیقه از کرون سیستم صدا بزنید. دستور دقیق در **تنظیمات ← پیشرفته** نمایش داده می‌شود.

== Frequently Asked Questions ==

= برای check-host.net به کلید API نیاز دارم؟ =

خیر. افزونه از API عمومی و رایگان استفاده می‌کند. یک سقف ساعتی قابل تنظیم جلوی مصرف بیش از حد را می‌گیرد.

= افزونه فیلترینگ را چطور از قطعی تشخیص می‌دهد؟ =

یک بررسی را هم‌زمان از نودهای ایران و خارج اجرا و مقایسه می‌کند. اگر نودهای ایران Timeout بگیرند ولی نودهای خارجی موفق باشند، احتمال فیلترینگ زیاد است. اگر هر دو طرف شکست بخورند، سرور قطع است. اگر یک طرف کد ۴۰۳/۴۵۱ بگیرد، سرور یا CDN آن، همان طرف را مسدود کرده است.

= بازدیدکنندگان می‌توانند سایت خودشان را در سایت من بررسی کنند؟ =

بله. ابزار عمومی را در تنظیمات فعال کنید و از شورت‌کد یا بلوک استفاده کنید. هر IP محدودیت ساعتی دارد و باید به یک سؤال ریاضی ساده پاسخ دهد. آدرس‌های شبکهٔ خصوصی از ابزار عمومی قابل بررسی نیستند.

= با وردپرس فارسی کار می‌کند؟ =

بله. اگر زبان سایت فارسی باشد، افزونه متن فارسی، تاریخ شمسی و ارقام فارسی نمایش می‌دهد. تقویم و ارقام را در تنظیمات هم می‌توانید به‌صورت دستی تعیین کنید.

== Screenshots ==

1. داشبورد با ماتریس دسترسی ایران و جهان.
2. بررسی جدید با حالت‌های هوشمند و انتخاب نود.
3. نتیجهٔ زنده با تشخیص نهایی و جزئیات هر نود.
4. مانیتورها با آپ‌تایم ۳۰ روزه و رویدادها.
5. تنظیمات و کانال‌های هشدار.

== Changelog ==

= 1.0.0 =
* انتشار نخست.

== Upgrade Notice ==

= 1.0.0 =
انتشار نخست.
