Интернет-форум

Вернуться   Интернет в Санкт-Петербурге > United-Tracker.com > Обсуждение трекера

 
Опции темы
Старый 05.04.2008, 00:50
  #11
Долгожитель
 
Аватар для Zabor


Медаль профессионала: За регулярную и грамотную помощь участникам форума - причина: За регулярную и грамотную помощь участникам форума 
Наград: 1 (все ...)
Скрыто содержимое: Off
Цитата:
Сообщение от athost
...перестать "жрать кактус"...
Пререведи
Zabor вне форума   Ответить с цитированием
Старый 05.04.2008, 01:05
  #12
Завсегдатай

Цитата:
Сообщение от Zabor Посмотреть сообщение
Скрыто содержимое: Off

Пререведи
ОК. Пререведу

Это цитата из "Мыши кололись, плакали, но продолжали жрать кактус" (может быть парафраз)

Для достижения результата необходимо использовать средства предназначенные для выполнения данной задачи.

Последний раз редактировалось athost; 05.04.2008 в 01:08..
athost вне форума   Ответить с цитированием
Старый 05.04.2008, 04:11
  #13
Долгожитель
 
Аватар для Zabor


Медаль профессионала: За регулярную и грамотную помощь участникам форума - причина: За регулярную и грамотную помощь участникам форума 
Наград: 1 (все ...)
athost,
Понятно, я так и думал, дык какие средства, проги пробовал, с QoS ничего не вышло, других программ пока не нашел, на линухи переходить из-за одной этой проблемы не хочу, проще мю урезать на постоянной основе, меня Windows вполне устраивает.

Сервер решает еще некоторые проблемы, под которые в линухах софта наверняка не найдется, вот и приходится давиться кактусом .

добавлено через 2 часа 57 минут
Да, roman 'k' абсолютно прав, кавычки там необходимы, тут про это раскопал + проанализировал скрипты в папочке временных файлов ИЕ.

Но даже такая конструкция
Скрыто содержимое: скрипт
Код:
function get_page(url)
{
var http = new ActiveXObject("Microsoft.XMLHTTP");
http.open("GET", url, false);
http.send();
}

get_page("http://логин:пасс@127.0.0.1:порт/gui/?action=setsetting&s=max_ul_rate&v=20&s=max_dl_rate&v=120");

function fast_speed(){
get_page("http://логин:пасс@127.0.0.1:порт/gui/?action=setsetting&s=max_ul_rate&v=58&s=max_dl_rate&v=120");
}

setTimeout("fast_speed()", 5000);

в упор не видит объект , есть подозрение, что сервер сценариев Windows это одно, а обработчик скриптов в браузере другое, но не открывать же страницу в браузере для изменения скорости мю, да и 20 метров памяти на сервере под ИЕ жалко.

Но я упертый, сожру кактус и выплюну иголки , попробую погрызть VBScript, там все должно быть понятней, все ж не одну базу в Access сделал, только пока не очень помню есть ли в Windows XP достаточные для выполнения задачи встроенные средства обработки скриптов VB, если мне не изменяет память есть.

Последний раз редактировалось Zabor; 05.04.2008 в 04:31.. Причина: Добавлено сообщение
Zabor вне форума   Ответить с цитированием
Старый 05.04.2008, 06:39
  #14
Долгожитель

Zabor, ну что, продолжаем жрать кактус?
WScript.Sleep(ms) надо было использовать.

Цитата:
сервер сценариев Windows это одно, а обработчик скриптов в браузере другое
Именно так.

Можно и VBScript, по сути то же самое, только VB. Файл будет с расширением .vbs, запускается так же.
Скрыто содержимое: vbs
Код:
sub p(s)
 WScript.Echo(s)
end sub

function get_page(url)
  set http = CreateObject("Microsoft.XMLHTTP")

  http.Open "GET", url, false
  http.Send

  get_page = http.ResponseText
end function

'var s = get_page("http://login:password@127.0.0.1/gui/?list=1");
'p(s);
get_page("http://l:p@ip:port/gui/?action=setsetting&s=max_ul_rate&v=20&s=max_dl_rate&v=120")
WScript.Sleep(30000)
get_page("http://l:p@ip:port/gui/?action=setsetting&s=max_ul_rate&v=58&s=max_dl_rate&v=120")

Комментарии к сообщению (репутация)
Zabor , положительно: Опередил
pupkin вне форума   Ответить с цитированием
Этот участник поблагодарил pupkin(а) за это Полезное сообщение:
Zabor (05.04.2008)
Старый 05.04.2008, 14:17
  #15
Долгожитель
 
Аватар для Zabor


Медаль профессионала: За регулярную и грамотную помощь участникам форума - причина: За регулярную и грамотную помощь участникам форума 
Наград: 1 (все ...)
Sleep я как раз знал, и так удивлялся что в JS оно не работает , в 5 утра энтузиазм поугас, слепил практически тоже самое, таймер думал "утром" привернуть, а ты уже опередил, спасибо.

Тут не понял:
Цитата:
sub p(s)
WScript.Echo(s)
end sub
Это зачем?

В общем работает на ура, при запуске скрипта мю снижает скорость, через 30с повышает обратно.

Теперь вторая серия, заключительная, исполняющий код сваяли, теперь управляющая часть кода осталась. Правила могут срабатывать в фаерволе неоднократно, если каждый раз порождать процесс wscript.exe сервера сценариев никакой памяти не хватит и алгоритм управления, мягко говоря, не айс.

Скрыто содержимое: Вариант 1
Надо как-то при запуске скрипта определить наличие более одного процесса wscript.exe и если истина (1 уже запущенный ранее, 2 повторный) убить первый скрипт, тогда он, не досчитавшись по таймеру, не передаст запрос на повышение скорости.

Это сделает через 30 сек второй запущенный, если его не убьет третий и т.д.

Трудно представляю пока, как это сделать, просто мысли вслух.


Скрыто содержимое: Вариант 2
Еще вариант - загрузить скрипт постоянно (код ходит по кругу) и ожидать команду, записанную в правилах фаервола. По команде проверяется состояние триггера в скрипите, если он в состоянии высокой скорости триггер сбрасывается, отправляется запрос на снижение, начинается отсчет.

Если триггер уже в состоянии низкой скорости командой записывается в переменную "1" (команда была во время отсчета) это изменит событие после срабатывания таймера, вместо отправки запроса на повышение он обнулит переменную и запустится снова.

Дальше цикл повторяется до момента, когда за время отсчета от фаервола команд не поступало, что приведет к отправке запроса на повышение.

Правда, не знаю, как передать команду запушенному скрипту, тут у меня пробел.


Может можно еще проще?
Цитата:
pupkin , положительно: Это не надо, просто p "text" написать проще чем WScript.Echo("text")
Понятно.

Комментарии к сообщению (репутация)
pupkin , положительно: Это не надо, просто p "text" написать проще чем WScript.Echo("text")

Последний раз редактировалось Zabor; 06.04.2008 в 03:12..
Zabor вне форума   Ответить с цитированием
Старый 05.04.2008, 19:22
  #16
Долгожитель

Попробовал реализовать "Вариант 2". Вроде работает.
Надеюсь объект "MSWinsock.Winsock" в системе есть (если нет, надо скачать и установить MSWINSCK.OCX).
Скрыто содержимое: основной скрипт main.vbs
Код:
' ожидает команд по UDP
sub p(s)
 WScript.Echo(s)
end sub
sub Sleep(ms)
 WScript.Sleep(ms)
end sub

function HttpGet(url)
  set http = CreateObject("Microsoft.XMLHTTP")

  http.Open "GET", url, false
  http.Send

  HttpGet = http.ResponseText
end function


Dim tLimit
fQuit  = false
fLimit = false

sub SpeedDown
  tLimit = Now
  if fLimit then
    exit sub
  end if
'  p "Speed down"
  fLimit = true

' тут должна быть команда мю понизить скорость
  HttpGet("http://login:password@127.0.0.1/gui/?list=1")
end sub

sub SpeedUp
'  p "Speed up"

' тут должна быть команда мю повысить скорость
  HttpGet("http://login:password@127.0.0.1/gui/?list=1")
  fLimit = false
end sub

' обработчик события DataArrival
Sub wsck_DataArrival(notused)
 Dim cmd
 sock.GetData cmd, vbString
 select case cmd
   case "limit" SpeedDown
   case "quit"  fQuit = true
 end select
End Sub

set sock = WScript.CreateObject("MSWinsock.Winsock", "wsck_")

sock.LocalPort = 12223
sock.Protocol = 1 ' UDP
sock.bind

while fQuit = false
  Sleep(100)
  if fLimit then
    if Now - tLimit > #00:00:30# then ' 30 секунд таймаут
      SpeedUp
    end if
  end if
wend
sock.Close
set sock = nothing
p "Script end"


Скрыто содержимое: управляющий скрипт sendcmd.vbs
Код:
' отправляет параметр из командной строки по UDP
if WScript.Arguments.Count = 0 then WScript.Quit()

set sock = WScript.CreateObject("MSWinsock.Winsock")

sock.Protocol   = 1 ' UDP
sock.RemotePort = 12223
sock.RemoteHost = "127.0.0.1"
sock.SendData WScript.Arguments(0)

sock.Close
set sock = nothing


Использование
Ограничить скорость: "wscript sendcmd.vbs limit"
Команда восстановления скорости будет через 30 сек после последнего запроса limit, подряд идущие запросы limit игнорируются.
Выгрузить скрипт: "wscript sendcmd.vbs quit" или просто убить в диспетчере задач

Последний раз редактировалось pupkin; 05.04.2008 в 19:25..
pupkin вне форума   Ответить с цитированием
Эти 4 пользователей(ля) поблагодарили pupkin за это Полезное сообщение:
19w85 (30.04.2008), roman 'k' (06.04.2008), SergPT-66 (15.01.2009), Zabor (05.04.2008)
Старый 06.04.2008, 15:55
  #17
Долгожитель
 
Аватар для Zabor


Медаль профессионала: За регулярную и грамотную помощь участникам форума - причина: За регулярную и грамотную помощь участникам форума 
Наград: 1 (все ...)
Скрыто содержимое: Off
pupkin,
Пришел с дня рождения , ох ничего себе ты продвинулся , 50% пока не понял, завтра попробую разобраться и затестить, спасибо тебе большое, мне столько неделю ваять.


добавлено через 2 часа 5 минут
Не удержался, затестил сегодня MSWINSCK.OCX естественно не оказалось, перерыл инет - самый свежий от 14 сентября 2000г. v 6.0.89.88, зарегил через сервер регистрации как положено, один хрен пишет: "не удается создать объект с именем MSWinsock.Winsock".

Ругается само собой на строку "set sock = WScript.CreateObject("MSWinsock.Winsock" , "wsck_")"

Это та версия? Чего-то уж больно дремучий .

добавлено через 32 минуты
Видимо косяк с регистрацией, посмотрел под филимоном wscript.exe к MSWINSCK.OCX при запуске скрипта даже не пробовал обращаться.

добавлено через 10 часов 35 минут
Пробовал на SP-1, послан туда-же, регистрация MSWINSCK.OCX тут ни причем, похоже опять уперлись в ограниченные возможности сервера сценариев Windows, попробую поискать чем его заменить или как открыть сокет по другому.


добавлено через 32 минуты
Много эмоций
Е… [мат] Билл, чтоб его [8 этажный мат] оказывается, чтоб пользоваться виндовскими сокетами (создавать с помощью MSWinsock.Winsock) нужно иметь лицензию на право использования этого компонента.

Ну майкрософт отца их, хотя бы писали про это при попытке использовать MSWinsock.Winsock, так нет "не удается создать объект с именем MSWinsock.Winsock", сам думай, чего ему нужно .

Короче прогуглив полдня эту проблему нашел ему лицензию, которую он из реестра читает, пусть подавится гаденыш, - чтоб он заработал надо в реестр добавить следующее (REG файл):
Код:
REGEDIT4 
 
[HKEY_CLASSES_ROOT\Licenses\2c49f800-c2dd-11cf-9ad6-0080c7e7b78d] 
@="mlrljgrlhltlngjlthrligklpkrhllglqlrk"
Уф блин, Билл, чтоб он икал весь день, вроде все работает, сейчас отдохну и по полочкам буду раскладывать .

добавлено через 2 часа 32 минуты
Разложил по полочкам - работает!!!

Вот скрин с думетра и мю одновременно, попросил через прокси страничку своего сайта, скрипт весьма шустро подрезал скорость мю судя по думетру, 30 сек ничего больше у себя не открывал - скорость так-же скачком восстановилась.

Слегка перебрал с яркостью, но иначе шкалу мю не видно.

Начал тестить в режиме 24/7, результаты отпишу, pupkin большое спасибо за помощь, а точнее за 99% работы по скрипту .

PS Если тест пройдет успешно (нужно будет подобрать интервал, если 30 сек будет маловато) и глюков не будет выложу подробную инструкцию по "установке" и настройке динамического шейпера для µTorrent (звучит то как приятно ).

PPS Похоже мыши сожрали таки кактус, не смотря на иголки.

Комментарии к сообщению (репутация)
athost , положительно: +1 Посмотрим как будет в дальнейшем с пищеварением

Последний раз редактировалось Zabor; 06.04.2008 в 16:45.. Причина: Добавлено сообщение
Zabor вне форума   Ответить с цитированием
Эти 4 пользователей(ля) поблагодарили Zabor за это Полезное сообщение:
Ataman (06.04.2008), athost (06.04.2008), Ellexin (06.04.2008), roman 'k' (06.04.2008)
Старый 06.04.2008, 18:47
  #18
Долгожитель

О как, я и не подозревал, что такой гемор будет в установкой винсока. Можно было какой-нить сторонний компонент заюзать. Но раз уже теперь все работает, то и ладно.
А на какое событие подвешен вызов скрипта, и кстати, какой фаер используется?

Комментарии к сообщению (репутация)
Zabor , положительно: Еще как работает
pupkin вне форума   Ответить с цитированием
Старый 06.04.2008, 19:16
  #19
Долгожитель
 
Аватар для Zabor


Медаль профессионала: За регулярную и грамотную помощь участникам форума - причина: За регулярную и грамотную помощь участникам форума 
Наград: 1 (все ...)
Фаер мой любимый - Outpost Firewall Pro 4, но думаю многие фаерволы умеют выполнять команду при срабатывании заданного правила.

Глобальные правила я писать не люблю, проще, но демократичней, что тут не очень гуд, потому у меня в основном правила для конкретных приложений.

Повесил запуск скрипта в разрешающие правила:

- входящие FTP сервера
- исходящие FTP сервера
- входящие Апача
- исходящие Апача

На ап достаточно пока, с дауном после тестирования поиграюсь (просто пока для меня не актуально) но можно использовать правило выпускающее проксик или браузер, если комп один (вариант без сервера).

На заходы из внутренней сетки не срабатывает, что и требовалось, эти соединения разрешаются "доверенной сетью", потому мю спит спокойно .

Почему-то мне очень нравятся решения, при которых побочно выявляются полезные вещи. Вот и тут, например можно использовать часть скрипта, отправляющую запросы для ручного управления скоростью мю.

Щелчком одного скриптика размером с ярлык можно быстро сменить скорости апа и дауна хоть на рабочей станции, хоть на удаленном компе в своей сетке, если планируется освободить канал под использование IP телефона и т.п. (хех, не только в своей сетке получится).

Хотя и автоматика с этим справится, но всеж лишнее удобство для тех, кому автоматика по каким-то причинам не нравится.

Сижу мониторю, пока все Ок, вечером с другом будем FTP с удаленного компа мучить.

Последний раз редактировалось Zabor; 06.04.2008 в 19:20..
Zabor вне форума   Ответить с цитированием
Старый 06.04.2008, 20:25
  #20
Долгожитель

Там по идее получается, что при появлении соединения запустится скрипт, но ведь не известно сколько это соединение продержится. То есть, не плохо бы видеть активность, но это пока не понятно как сделать.
На счет использования скрипта для передачи комманд с/на удаленных компов, то надо иметь ввиду, что скрипт использует UDP, т.е. негарантированная доставка данных, но если это создаст проблемы - решаемо.
pupkin вне форума   Ответить с цитированием
Ответ

Метки
utorrent

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема со скоростью отдачи...в µTorrent RoveR "Ростелеком-Северо-Запад" 0 02.05.2009 16:39
Автоматическое подключение по wifi VINNI87 Обсуждение "Web Plus" 10 16.08.2008 02:23
DNS-сервер: автоматическое получение. MCG "Ростелеком-Северо-Запад" 11 08.03.2008 23:17
Автоматическое подключение alexstihl "Ростелеком-Северо-Запад" 7 27.03.2006 08:54


Часовой пояс GMT +3, время: 19:34.


DSLnet.ru © 2004-2012. Все права защищены.
vBulletin® Version 3.8.2 Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Rambler's Top100 Рейтинг@Mail.ru