Світлова індикація наявності "інтернету" на D-Link DIR-320

  у розділі Технічні теми 

Якщо Ваш роутер D-Link DIR-320 і він працює на альтернативній прошивці DD-WRT то існує чудова можливість керувати світлодіодами пристрою, наприклад за допомогою скриптів.

Використаємо освітлення бокової кнопки для того щоб автоматично показувати чи є зв’язок з потрібними серверами.

Мені зручно перевіряти доступність (Ping) з трьома серверами: 1-й — той з яким встановилось з’єднання PPPoE (мій шлюз), 2-й — шлюз провайдера (щоб знати коли в провайдера пропадають зовнішні канали, якщо це станеться) і 3-й — якийсь сервер в "далекому" інтернеті (наприклад DNS від Google — 8.8.8.8).

Найпростіший метод - закинути скрипт в роутер через його веб-інтерфейс.

Використовуйте сторінку "Commands", як зображено на малюнку (зберігайте через Save Startup).

DD-WRT

Після збереження перевантажте роутер.

Тепер бокове світло буде моргати один раз синім, якщо є зв’язок з усіма серверами, або червоним світлом, якщо зв’язку з одним із серверів немає. ;)

Кількість блимань червоного світла вкаже на номер сервера на якому зв’язок обривається.

Не забудьте вказати змінну SUPER_GATEWAY (якийсь зовнішній шлюз провайдера)!

#!/bin/sh
# SYM, 18.03.11

export PATH=/bin:/usr/bin:/sbin:/usr/sbin

SUPER_GATEWAY="ВПИШІТЬ_IP_СЕРВЕРА_ПРОВАЙДЕРА_СЮДИ"
GOOGLE="8.8.8.8"

GPIO="gpio"
DELAY=3

Red=3
Blue=4

while sleep $DELAY
    do
        GATEWAY=`ip route | awk '/default via/ {print $3}'`
        COUNT=1

        if ping -c 1 $SUPER_GATEWAY >/dev/null
            then
                COLOR=$Blue

                if ping -c 1 $GOOGLE >/dev/null
                        then
                        COLOR=$Blue
                    else
                        COUNT=2
                        COLOR=$Red

                fi #GOOGLE

            else
                COUNT=1
                COLOR=$Red

        fi #SUPER_GATEWAY

        CUR=1
        while [ $CUR -le $COUNT ]
            do
                $GPIO disable $COLOR
                usleep 100000
                $GPIO enable $COLOR
                usleep 500000
                CUR=`expr $CUR + 1`
        done #bink

    done #sleep

Для цікавих: змінюючи порядковий номер для команди gpio можна керувати і іншими світлодіодами (наприклад індикатором USB (принтер), на передній панелі).

18.03.11 оновив скрипт (дрібні виправлення).


Коментарі