Comments 41
$fp = fsockopen('192.168.1.1', 80, $errno, $errstr, 60);
$fp = fsockopen('192.168.1.1', 80, $errno, $errstr, 60);
Это если он с первого раза не понял?
$fp = fsockopen('192.168.1.1', 80, $errno, $errstr, 60);
Это если он с первого раза не понял?
+2
Указанную проблему можно решить при помощи bash в 5 строчек, зачем php?:
#!/bin/bash
ping -c 1 google.ru
if [ $? != «0» ]; then
wget 192.168.1.1/rebootinfo.cgi --http-user=admin --http-password=admin
fi
#!/bin/bash
ping -c 1 google.ru
if [ $? != «0» ]; then
wget 192.168.1.1/rebootinfo.cgi --http-user=admin --http-password=admin
fi
+9
Ну, как-то по привычке Окнами пользуюсь :)
0
а в MS Windows?
-7
Для Windows:
ping google.ru
if not errorlevel 0 goto end
wget 192.168.1.1/rebootinfo.cgi --http-user=admin --http-password=admin
:end
ping google.ru
if not errorlevel 0 goto end
wget 192.168.1.1/rebootinfo.cgi --http-user=admin --http-password=admin
:end
+7
в windows нет комманды wget…
-6
И php в нем нет:)
Можно скачать всего 1 файл и положить в %system%
Можно скачать всего 1 файл и положить в %system%
+9
Спасибо.
Но не во всех случаях код выше поможет.
Но не во всех случаях код выше поможет.
0
Приведите примеры? :)
0
см. коммент ниже
0
Так отработает — результат erorrlevel = 1. Проверьте сами, другое дело, что в скрипте лишний not, но концепция я думаю понятна.
0
Проверял. Ноль.
0
что то не очень верится, нельзя ли посмотреть результаты работы скрипта
в случае когда отвалилось соединение и когда все в порядке
ping google.ru
if errorlevel 0 goto end
echo FAIL
goto end
echo OK
:end
в случае когда отвалилось соединение и когда все в порядке
ping google.ru
if errorlevel 0 goto end
echo FAIL
goto end
echo OK
:end
0
В данном коде echo OK никогда не отработает…
0
Исправленная версия:
ping google.ru
if errorlevel 0 goto OK
echo FAIL
goto end
:OK
echo OK
:end
pause
Вот пример результатов, когда это не срабатывает:
C:\>ping google.ru
Pinging google.ru [74.125.77.104] with 32 bytes of data:
Request timed out.
Request timed out.
Reply from 192.168.1.1: Destination net unreachable.
Reply from 192.168.1.1: Destination net unreachable.
Ping statistics for 74.125.77.104:
Packets: Sent = 4, Received = 2, Lost = 2 (50% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\>if errorlevel 0 goto OK
C:\>echo OK
OK
C:\>pause
Press any key to continue...
ping google.ru
if errorlevel 0 goto OK
echo FAIL
goto end
:OK
echo OK
:end
pause
Вот пример результатов, когда это не срабатывает:
C:\>ping google.ru
Pinging google.ru [74.125.77.104] with 32 bytes of data:
Request timed out.
Request timed out.
Reply from 192.168.1.1: Destination net unreachable.
Reply from 192.168.1.1: Destination net unreachable.
Ping statistics for 74.125.77.104:
Packets: Sent = 4, Received = 2, Lost = 2 (50% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\>if errorlevel 0 goto OK
C:\>echo OK
OK
C:\>pause
Press any key to continue...
0
C:\>ping google.ru
Обмен пакетами с google.ru [209.85.229.104] по 32 байт:
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Статистика Ping для 209.85.229.104:
Пакетов: отправлено = 4, получено = 0, потеряно = 4 (100% потерь),
C:\echo %errorlevel%
1
Обмен пакетами с google.ru [209.85.229.104] по 32 байт:
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Статистика Ping для 209.85.229.104:
Пакетов: отправлено = 4, получено = 0, потеряно = 4 (100% потерь),
C:\echo %errorlevel%
1
0
Насколько знаю, в PowerShell имеется соответствующий командлет.
0
Есть.
users.ugent.be/~bpuype/wget/
users.ugent.be/~bpuype/wget/
0
Кстати, если канал отвалился недавно, то пинг может отресолвить хост, но пинги не дойдут, т.е. errorlevel = 0, а результат таймаут.
в скрипте есть проверка для подобного случая:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
в скрипте есть проверка для подобного случая:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
0
спасибо, если не сложно то могли бы для *nix написать?
-3
> Средствами Windows XP достаточно проблематично запускать скрипт каждые 5 минут.
Планировщик заданий не осилили?
Панель управления > Назначенные задания > Добавить задание
Планировщик заданий не осилили?
Панель управления > Назначенные задания > Добавить задание
0
Спасибо за решение, оно мне поможет сильно. Только есть одно но. У меня модем стоит за роутером. Висит на wan дырке. И я не могу до него добраться :( Никто случайно ip не знает? Я пробивался как-то раньше, а сейчас не получается. Прошивка роутера dd-wrt. Там что-то типа 192.168.100.1 было, кажется.
+1
Сам работаю у провайдера, среди прочего предлагаем ADSL, иногда ребут модема клиента не помогает, приходится дергать порт на DSLam-е. Редко, но бывает. Оборудование — Paradyne IP 4200.
0
Один хабраюзер уже делал то же самое на python, по-моему выглядит получше: habrahabr.ru/blogs/linux/67421/
+1
А почему бы ppoe на компе не поднять? Там в настройках есть пункт — перезвонить при разрыве сессии.
0
UFO just landed and posted this here
вот так реализовано у меня:
в крон
*/5 * * * * ~/bin/ping_test >/dev/null 2>&1
— ping_test — #!/bin/sh
/bin/ping -c3 -i1 $GW
test=$?
if [ $test -ne 0 ]; then
~/bin/modem
fi
— modem — #!/usr/bin/expect -f
spawn telnet $modem_ip
expect «login:» { send «admin\n»}
expect «Password:» { send «my_password\n»}
expect "#" {send «reboot\n»}
expect "#" {send «exit\n»}
в крон
*/5 * * * * ~/bin/ping_test >/dev/null 2>&1
— ping_test — #!/bin/sh
/bin/ping -c3 -i1 $GW
test=$?
if [ $test -ne 0 ]; then
~/bin/modem
fi
— modem — #!/usr/bin/expect -f
spawn telnet $modem_ip
expect «login:» { send «admin\n»}
expect «Password:» { send «my_password\n»}
expect "#" {send «reboot\n»}
expect "#" {send «exit\n»}
0
еще вопрос, если на модеме pppoe то зачем модем перезагружать, достаточно pppoe опустить и поднять.
Выйдет гораздо быстрее…
У меня стоит модем роутером держит pppoe за ним wifi роутер бриджом. Возникла идея натравить их друг на друга. Когда нет инета wifiроутер перезапускает пппое на модеме. Когда wifiроутер подвис модем перезапускает роутер.
Выйдет гораздо быстрее…
У меня стоит модем роутером держит pppoe за ним wifi роутер бриджом. Возникла идея натравить их друг на друга. Когда нет инета wifiроутер перезапускает пппое на модеме. Когда wifiроутер подвис модем перезапускает роутер.
0
Sign up to leave a comment.
Если гора не идет к Магомеду… Как поддержать активным ADSL соединение у криворукого провайдера