Тема: AHK: Включение прокси сервера
Здравствуйте, помогите пожалуйста. Как включить прокси посредствам AutoHotKey?
Пробовал заменять данные в реестре, не помогло.
Надеюсь на вашу помощь.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте, помогите пожалуйста. Как включить прокси посредствам AutoHotKey?
Пробовал заменять данные в реестре, не помогло.
Надеюсь на вашу помощь.
tuma4ok,
1) Правильно ли я понял - Речь о включении настройки, отвечающей за использование браузерами прокси-сервера ? Или же всё-таки мы говорим о написании своего прокси сервера на AutoHotKey ?
2) Можно взглянуть на код с которым Вы работаете ?
3) Конечную задачу узнать можно ? Предполагаю, что есть альтернативные более простые решения.
Xameleon,
1) Мне как бы нужно поставить вот тут галочку
http://i.imgur.com/mTpbhM2.png
2) Вот я пробовал вот так.
Regwrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Internet Settings,ProxyEnable,1
3) Конечная задача: Включение и отключение прокси очень быстро.
Ну, кажется ответил на все вопросы:).
tuma4ok,
Мне как бы нужно поставить вот тут галочку
1) Дело в том, что IE, как и многие другие браузеры "цепляют" настройки из реестра в момент своей первой загрузки. А это значит, что пока браузер не будет перезапущен, об изменениях в реестре он не узнает.
2) Есть API которыми можно управлять уже запущенными экземплярами браузера Internet Explorer. Но тут придётся повозиться.
3) Есть варианты поднять на своём ПК прокси сервер, который можно перенаправить на нужный прокси и перезапускать его. Но ИМХО коряво как-то.
4)
Конечная задача: Включение и отключение прокси очень быстро.
Именно поэтому и уточнял конечную задачу. Всё дело в неправильности понимания конечной задачи. Опять же уточняю "Вы не включаете и выключаете прокси сервер", а "включаете и выключаете настройку ИСПОЛЬЗОВАНИЯ прокси сервера для браузера(ов)". Смысл моего уточнения - не придраться к словам, а пояснить, что сам подход (на мой взгляд) не верен. Так как это косвенная настройка. Есть объекты XMLHTTP / WinHttpRequest, которые имеют метод для выбора желаемого прокси-сервера (SetProxy) для обмена. И срабатывают они мгновенно. Но возможности этих объектов отличаются от движка Internet Explorer-а и т.п.
Поэтому опять же вопрос - какая конечная задача ? (Для чего "БЫСТРО меняем прокси сервер") ?
P.S Попахивает брут атакой конечно, но всё же интересно. )
На 1 сайте, мой основной IP адрес заблокирован. И для того что бы там оставить комментарий мне приходится подключать прокси. А каждый раз это делать не удобно. По этому мне нужно БЫСТРО ПОДКЛЮЧИТЬ ПРОКСИ, оставить комментарий, а потом БЫСТРО ОТКЛЮЧИТЬ прокси. Ну как-то так объяснил:).
По-моему, в самом браузере должна быть возможность изменения настроек proxy "на лету".
По крайней мере, в Опере имеет такая особенность (F12).
tuma4ok, боюсь руководство не одобрит обсуждение тем такого характера. Так как это некоторым образом противоречит пункту правил 2.9. И я это поддерживаю. Раз Вас заблокировали на том сайте, то на это были причины ? Предполагаю, что да. Попытка обойти эти ограничения, это нарушение правил поведения на форуме.
tuma4ok, боюсь руководство не одобрит обсуждение тем такого характера. Так как это некоторым образом противоречит пункту правил 2.9. И я это поддерживаю. Раз Вас заблокировали на том сайте, то на это были причины ? Предполагаю, что да. Попытка обойти эти ограничения, это нарушение правил поведения на форуме.
На том форуме меня не забанили. С моим аккаунтом все хорошо. Просто, вероятнее всего, кого-то из моей страны заблокировали и забанили подсеть провайдера. Я несколько раз менял IP адрес, но все равно не мог оставлять комментарии.
А зачем тогда переключаться туда-сюда? Просто открываешь параллельно другой браузер, в котором настроен прокси-сервер.
1) Дело в том, что IE, как и многие другие браузеры "цепляют" настройки из реестра в момент своей первой загрузки. А это значит, что пока браузер не будет перезапущен, об изменениях в реестре он не узнает.
А разве так нельзя?
SID := GetUserSID()
Regwrite, REG_DWORD, HKEY_USERS, %SID%\Software\Microsoft\Windows\CurrentVersion\Internet Settings,ProxyEnable,1
return
GetUserSID() {
Loop, HKEY_CURRENT_USER
, Software\Microsoft\Protected Storage System Provider, 2
Return A_LoopRegName
}
Спасибо всем за ответы. Решил проблему установкой расширения для браузера.
Malcev,
А разве так нельзя?
Не понял. А это каким-то образом меняет ситуацию с перезапуском браузера ? И к тому же зачем считывать SID пользователя если раздел HKCU и так ссылается на текущего юзера ?
Ради интереса проверил "шаманство", но увидел логичный результат - в запущенном IE ничего не меняется при выполнении этого кода.
У меня меняется без перезапуска броузера.
В Internet Options->Connections->Lan settings-> Use a proxy server появляется галочка.
Как я понял, этого и хотел добиться топикстартер.
Malcev, а какой у Вас браузер, позвольте полюбопытствовать ?
IE11.
Но у меня срабатывает и этот код:
Regwrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Internet Settings,ProxyEnable,1
Только не моментально.
Может IE обращается к реестру через какой-то промежуток времени?
Ну или так:
SetKeyDelay, -1
Run rundll32.exe shell32.dll`,Control_RunDLL inetcpl.cpl`,`, 4
SendInput, !{vk4C} ; l
WinWait, Local Area Network (LAN) Settings
SendInput, !{vk58}{enter}{esc} ; x
Malcev, проверил. Действительно, через некоторое время настройка появляется. Значит IE периодически выполняет проверку реестра. Но тем не менее полагаться на это, а тем более подсовывать настройки через нажатия клавиш, я бы не стал потому что:
1) Медленно
2) Ненадёжно и может нарушить работу других программ из-за "промаха" мимо окна.
3) Неизвестно как остальные браузеры отрабатывают такую ситуацию + даже ранние версии IE были без периодической проверки.
1) Медленно
Согласен.
2) Ненадёжно и может нарушить работу других программ из-за "промаха" мимо окна.
Если хочется перестраховаться, то можно слать controlclick.
SetControlDelay, -1
Run rundll32.exe shell32.dll`,Control_RunDLL inetcpl.cpl`,`, 4
WinWait, Internet Properties
ControlClick, &LAN settings, Internet Properties
WinWait, Local Area Network (LAN) Settings
ControlClick, Use a pro&xy server for your LAN (These settings will not apply to dial-up or VPN connections)., Local Area Network (LAN) Settings
ControlClick, OK, Local Area Network (LAN) Settings
WinWaitClose, Local Area Network (LAN) Settings
ControlClick, OK, Internet Properties
WinWaitClose, Internet Properties
return
1) Медленно
Не особо в теме, просто вспомнил, про:
EnvUpdate
Возможно поможет.
Не помогает.
Вот такой код скомпоновал, который моментально переключает прокси серверы.
Проверял в Internet Options Connections Lan Settings.
Вопрос: как проверить его дееспособность?
Цель зайти под другим айпи на сайт и чтобы сайту была отправлена информация, что я захожу с подмененного айпи.
Прокси сервер мой собственный, нигде не засвеченный.
f9::
setproxy()
return
f10::
setproxy("91.188.39.232:8888")
return
f11::
setproxy("80.232.241.130:7778")
return
setproxy(address = "")
{
if (address = "") and (regread("HKCU","Software\Microsoft\Windows\CurrentVersion\Internet Settings","Proxyenable") = 0)
return
else if (address = "") and (regread("HKCU","Software\Microsoft\Windows\CurrentVersion\Internet Settings","Proxyenable") = 1)
regwrite,REG_DWORD,HKCU,Software\Microsoft\Windows\CurrentVersion\Internet Settings,Proxyenable,0
else
{
if regread("HKCU","Software\Microsoft\Windows\CurrentVersion\Internet Settings","Proxyenable") = 0
regwrite,REG_DWORD,HKCU,Software\Microsoft\Windows\CurrentVersion\Internet Settings,Proxyenable,1
regwrite,REG_SZ,HKCU,Software\Microsoft\Windows\CurrentVersion\Internet Settings,ProxyServer, %address%
}
dllcall("wininet\InternetSetOptionW","int","0","int","39","int","0","int","0")
dllcall("wininet\InternetSetOptionW","int","0","int","37","int","0","int","0")
return
}
RegRead(RootKey, SubKey, ValueName = "")
{
RegRead, v, %RootKey%, %SubKey%, %ValueName%
Return, v
}
Есть же сайты, позволяющие узнать, с какого айпи вы зашли. Например, www.myip.ru.
Хотя нет, конкретно этот что-то перестал работать, но и другие были.
То есть сайт увидит ту же инфу, что и этот сайт?
http://www.whatismyip.com/
Никаких хитростей и хуков они не могут использовать у себя на сервере?
Насколько помню где-то читанное, сам прокси-сервер должен сообщить о подмене, иначе не узнают.
Вот, что нашел - все показывает:
http://whoer.net/extended
Вот хорошая утилитка:
http://3proxy.ru/download/
Прописываем в конфигурационный файл:
proxy -a
И заголовки, что был использован прокси - подчищаются.
Malcev попробовал с 20 поста, интернет отключает, проксю не цепляет. Возможно код не актуален, или я что не так делаю. Как решил вопрос, не просвятишь?
У меня код с 20 поста в IE работает.
Может прокси нерабочие?
Нет, оказалось у меня к IP требуется добавлять тип
https=108.166.171.198:80
, или у меня какой настройки авто определения типа не хватает?
А не пробовал прокси отдельно для копии IE (ком объекта), и Скайпа?
оказалось у меня к IP требуется добавлять тип
Наверное у тебя не стоит галочка use the same proxy for all protocols.
А не пробовал прокси отдельно для копии IE (ком объекта), и Скайпа?
Через реестр наверное можно.
Надо создать ветвь:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Skype\Phone
И изменять параметры ProxySetting, ProxyAddress.
26 стр.
https://download.skype.com/share/busine … -guide.pdf
Наверное у тебя не стоит галочка use the same proxy for all protocols.
Да, сделал, работает.
http=%ip%;https=%ip%;socks=%ip%
С галочкой вроде socks не устанавливаются.
Через реестр наверное можно.
Спасибо, будет полезно.
Видел некоторые проги вроде дают назначить прокси по процессу. Видимо определяют на каких портах сидит процесс, типа netstat, и как то их перенаправляют...
Кстати не подскажешь как лучше проверить прокси, через браузер например на 2ip.ru определяет новый айпи, а этот код в тоже время возвращает старый:
MsgBox % GetPublicIP()
GetPublicIP() {
HttpObj := ComObjCreate("WinHttp.WinHttpRequest.5.1")
Url = https://2ip.ru/
HttpObj.Open("GET", Url)
HttpObj.Send()
RegexMatch(HttpObj.ResponseText,"Ваш IP адрес:.*>([\d\.]+)</big>", match)
Return match1
}
WinHttp.WinHttpRequest.5.1 не читает настроек IE.
Ему нужно отдельно прописывать:
HttpObj.SetProxy(2, "YourProxy")
А вот Msxml2.XMLHTTP читает.
Вот неплохой ликбез:
https://habrahabr.ru/post/190396/
А вот Msxml2.XMLHTTP читает.
Ага, этот работает.
GetPublicIP() {
HttpObj := ComObjCreate("Msxml2.XMLHTTP")
Url = https://2ip.ru/
HttpObj.Open("GET", Url, 1)
HttpObj.Send()
While HttpObj.readyState != 4
Sleep 100
RegexMatch(HttpObj.responseText,"Ваш IP адрес:.*>([\d\.]+)</big>", match)
Return match1
}
Минусы прокси-серверов:
***
необходимость настройки прокси-сервера для каждого приложения либо использование отдельных программ-соксификаторов, например, Proxifier.
Вообщем что прокси не для всех программ (соединений), то есть для каждого приложения надо настраивать каким то своим путём, одному в реестр записать, а другому неизвестно что и куда...
HttpObj.SetProxy(2, "YourProxy")
такая конструкция поддерживает только HTTP/HTTPS, а как использовать Socks proxy?
WinHttpRequest, не работает с Socks proxy.
Если нужен socks4 используйте Msxml2.XMLHTTP либо wininet.
Если выше, то можно через мост, типа Privoxy.
WinHttpRequest, не работает с Socks proxy.
Если нужен socks4 используйте Msxml2.XMLHTTP либо wininet.
Если выше, то можно через мост, типа Privoxy.
попробовал MSXML2.ServerXMLHTTP, не получается подключить socks. Или нужно использовать именно Msxml2.XMLHTTP? Либо я их неправильно подключаю. Будьте добры, черканите команду как ahk поженить с socks
Насчет сервера не пробовал.
Лень повторно писать, в этой теме всё расписано.
В 20 соообщении - как вписать прокси через реестр и обновить IE.
Что именно писать вы можете посмотреть сами изменив в IE настройки socks прокси и посмотрев, что написано в реестре.
А Msxml2.XMLHTTP берет настройки с IE.
Насчет сервера не пробовал.
Лень повторно писать, в этой теме всё расписано.
В 20 соообщении - как вписать прокси через реестр и обновить IE.
Что именно писать вы можете посмотреть сами изменив в IE настройки socks прокси и посмотрев, что написано в реестре.
А Msxml2.XMLHTTP берет настройки с IE.
там только в один поток получится что можно работать, а мне хотелось бы сделать чтобы каждый поток работал со своим ip. программа работает запросами, не использует internet explorer
программа работает запросами, не использует internet explorer
Тогда спрашивайте у авторов программы.
Если хотите в несколько потоков работать - пробуйте winhttprequest + мост, типа Privoxy.
777graf777 пишет:программа работает запросами, не использует internet explorer
Тогда спрашивайте у авторов программы.
Если хотите в несколько потоков работать - пробуйте winhttprequest + мост, типа Privoxy.
в том то и дело, что я сам автор программы. используя privoxy я не смогу ведь менять айпи автоматизированно? или это тоже можно делать через реестр?
Winhttprequest не использует настройки IE.
Вы Winhttprequest перенаправляете в privoxy, а в нем уже можно вроде автоматизировать выдачу прокси.
Сам я не пробовал. Нужно читать документацию.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться