IP Status Lamp
ip-status-lamp for wordpress site
★ 0stars
0forks
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/serhyi/ip-status-lamp/archive/refs/heads/main.zipIP Status Lamp — WordPress Plugin
Віджет-лампочка для моніторингу доступності IP-адреси через PING.
🔧 Встановлення
- Завантажте папку
ip-status-lampу/wp-content/plugins/ - Активуйте плагін у розділі "Плагіни" WordPress
- Перейдіть до Налаштування → IP Status Lamp
- Вкажіть IP-адресу для моніторингу
- Вставте shortcode на потрібну сторінку
📋 Використання
Базовий shortcode
[ip_status_lamp]
З параметрами
[ip_status_lamp size="large" label="Офісний сервер"]
Параметри:
size— розмір лампочки:small,medium(за замовчуванням),largelabel— заголовок перед лампочкою
⚙️ Налаштування
| Параметр | Опис | Значення |
|---|---|---|
| IP-адреса | IP або домен для перевірки | напр. 192.168.1.1 |
| Інтервал | Автооновлення статусу на сторінці | 1-60 хвилин |
| Кількість PING | Скільки пінгів для визначення статусу | 1-10 |
| Таймаут | Час очікування відповіді | 1-10 секунд |
🔴🟢 Логіка статусу
- Зелений (Онлайн): більше половини пінгів успішні
- Червоний (Офлайн): менше половини пінгів успішні
- Жовтий: помилка з'єднання
🛠 Технічні деталі
- Client-side rendering — статус завантажується через AJAX одразу при відкритті сторінки
- Сторінка може кешуватися (CDN/Cloudflare) — статус завжди актуальний
- Ping виконується на сервері через PHP
exec() - Підтримує Windows та Linux сервери
- REST API endpoint:
/wp-json/ip-status-lamp/v1/status - Автоматичне оновлення через заданий інтервал
⚠️ Вимоги
- PHP 7.4+
- WordPress 5.0+
- Доступ до функції
exec()на сервері - Права на виконання команди
ping
🔒 Безпека
- Валідація IP: перевіряється формат IPv4, IPv6 та доменних імен
- Command Injection: заборонені небезпечні символи (
;,|,&,`,$тощо) - Подвійна перевірка: валідація при збереженні + перед виконанням ping
- No-cache headers: заборона кешування сторінок та REST API відповідей
📄 Ліцензія
GPL v2 або пізніша