faq обучение настройка
Текущее время: Пн июл 21, 2025 15:17

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Wake On Ln через DI-624
СообщениеДобавлено: Пн июл 07, 2008 18:27 
Не в сети

Зарегистрирован: Вт май 29, 2007 22:39
Сообщений: 28
Понадобилась возможность включать компьютер по сети. Вроде бы техника отработанная - называется WoL (Wake on Lan). Однако у меня стоит дома роутер D-Link DI-624. И мне нужно посылать "магический пакет" извне, из интернета - чтобы "пробудить" компьютер дома. NAT тут, ясен пень, не покатит - покуда комп выключен и не имеет айпишника, роутер просто не будет знать, куда именно пересылать пакет. NAT по MAC адресам? Может, и есть такой в природе, но я ни разу не слышал. Широковещательная рассылка? Наверное. Но только роутер, как выяснилось, этого не поддерживает. При попытке ввести в параметры NAT (виртуальный сервер) адреса вида 192.168.0.255 тут же получил ошибку от роутера - мол, такой адрес нельзя; нужно в диапазоне 1-254... И вот тут-то удалось-таки "победить" строптивый роутер. Все проверки на валидность у него сделаны на java-script, внедрённом в веб-интерфейс. И после проверок данные отправляются POST-запросом роутеру.

Проблема решилась ручной отправкой нужного POST-сообщения роутеру - в обход его собственной веб-формы. Естественно, в HTTP заголовок при этом нужно включить авторизационные данные админа - иначе роутер просто не примет такой пакет. В результате несложной манипуляции в правилах "виртуальных серверов" роутера оказывается нужная строчка. И - что самое забавное - она работает!

Вот заготовленный и поправленный заголовок, который я отправляю роутеру (естественно, без реальной аутентификации - а также я поправил в самих отправляемых данных параметр pubPort (66666 - такого порта, естественно, не существует; у меня реальный стоит другой))

POST /adv_virtual.cgi HTTP/1.1
Host: 192.168.0.5
User-Agent: Mozilla/5.0 (; U;; ru; rv:1.9) Gecko/2008052906 Firefox/3.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Referer: http://192.168.0.5/adv_virtual.cgi
Authorization: Basic бла-бла-бла (тут имя и пароль согласно Basic аутентификации)
Content-Type: application/x-www-form-urlencoded
Connection: keep-alive
Content-Length: 157

editRow=21&delrow=-1&enable=1&name=WoW&ip=255.255.255.255&protocol=17&priPort=9&pubPort=66666&schd=0&hour1=0&min1=0&am1=0&hour2=0&min2=10&am2=0&day1=0&day2=0

Этот заголовок я просто сохранил в файл postrouter.txt, а затем отправил его серверу с помощью нехитрой команды:

cat "postrouter.txt" | nc 192.168.0.5 80

Теперь мой роутер исправно пересылает udp-пакеты, направленные на указанный публичный порт, по широковещательному адресу. И - как показала проверка - позволяет без проблем работать поверх него Wake-on-Lan.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 07, 2008 18:29 
Не в сети

Зарегистрирован: Вт май 29, 2007 22:39
Сообщений: 28
Уважаемые сотрудники D-Link нельзя ли сразу сделать на dir-300 прошивку чтоб не блочила возможность прописать в порт форвадинг ип 192.168.0.255 а то заниматься этим гемороем не хочется...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт июл 08, 2008 10:04 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Ср июл 04, 2007 13:48
Сообщений: 7031
Откуда: D-Link. Moscow
Это броадкастовый IP, поэтому этой возможности не будет.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт июл 08, 2008 18:16 
Не в сети

Зарегистрирован: Вт май 29, 2007 22:39
Сообщений: 28
я знаю что это бродкастовый IP но почему нужно запрещать ??? Прочтите внимательно статью в начале топика, работает же!!!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 09, 2008 08:05 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Ср июл 04, 2007 13:48
Сообщений: 7031
Откуда: D-Link. Moscow
Потому это стандарт, маршрутизатор должен блокировать броадкаст, это описано в RFC


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Wake On Ln через DI-624
СообщениеДобавлено: Ср июл 30, 2008 15:49 
Не в сети

Зарегистрирован: Ср ноя 14, 2007 10:49
Сообщений: 4
Есть вариант обойти проверку IP адреса попроще. Сразу оговорюсь – речь идет о компьютере, подключенном витой парой.

Заходим на страницу adv_virtual.html.
Смотрим View->Source. Находим, что проверку IP адреса производит функция check_address. Там же видно, где она определена:

<script language="JavaScript" src="public.js"></script>

Скачиваем библиотеку public.js и находим функцию check_address. В поле адреса браузера пишем:

javascript:function check_address(my_obj, mask_obj, ip_obj){return true;};

и нажимаем Enter.

Теперь обычным способом заносим переадресацию и получаем, например, такое:

Virtual Servers List:
WakeOnLan 192.168.0.255 UDP 7/777

Там же пишем строку для Remote Desktop Connection (тут уже без фокусов):

RemDeskCon 192.168.0.2 TCP 3389/3389

Получаем удаленный доступ к домашнему компьютеру с включением и выключением.

Включить его можно с помощью утилиты http://www.yarovy.com/files/WakeOnLan.exe
Выключаем (на удаленном) из командной строки: shutdown –s или утилитой http://www.yarovy.com/files/Shutdown.exe

У меня DI-624, прошивка d2_404b028. Но, думаю, то же самое можно проделать и с другими.

> Потому это стандарт, маршрутизатор должен блокировать броадкаст, это описано в RFC

De facto стандарт маршрутизаторов - это Cisco. Да, там по умолчанию не разрешен directed-broadcast, но можно разрешить, продумав access листы и т.д. Можно поискать и почитать все за и против. Вкратце, - пишут что нельзя, но если очень хочется, то можно.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Действительно - работает.
СообщениеДобавлено: Ср фев 11, 2009 15:04 
Не в сети

Зарегистрирован: Вт апр 01, 2008 15:04
Сообщений: 22
Откуда: Одесса
Попробовал на своём DIR-120

Только строка для броузера выглядит так:

javascript:function is_valid_ip(ipaddr, optional){return true;};

Именно как есть, и всё, после этого нормально прописывает 255

Всем на заметку.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 298


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB