1

Тема: AHK: Прокси в GET запросе

Здравствуйте. Подскажите как использовать прокси  в AHK скрипте?
Вот сам код (прокси публичный, может уже не работать, на момент проверки скрипта, прокси рабочий был)

ComObjError(false)
HTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")
HttpObj.SetProxy(2, "183.213.26.12:3128")
HTTP.Open("GET",  "http://api.ipify.org/", false)
HTTP.send()
sleep 1000
HTTP.WaitForResponse(1)
result := HTTP.ResponseText
MsgBox, %result%

Не могу понять что я делаю не так. Всегда получаю свой домашний IP в msgbox
Что означает цифра 2 в строке SetProxy (2...
Почему IP адрес показывает домашний а не прокси?
Можно ли подключить прокси формата прокси:порт:логин:пароль?
Буду очень признателен вам за помощь!!!

2

Re: AHK: Прокси в GET запросе

В вашем коде намешано сорок бочек арестантов. Для начала, откуда взялось HttpObj? Где оно в коде определено?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: vlasartem21, 2021-04-30 22:06:35)

Re: AHK: Прокси в GET запросе

teadrinker
В коде HttpObj не было, взял здесь с форума и попробовал поставить, думал сработает. Взял только все самое лучшее с  разных форумов Я учусь, объясните если не отнимет у вас много времени.

4

Re: AHK: Прокси в GET запросе

Нужно учиться, понимая, что происходит.

ComObjError(false)

Эта строчка предотвращает сообщения об ошибках, поэтому на этапе тестирования только навредит.

HTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")

Эта строчка создаёт COM-объект, зарегистрированный в системе под именем "WinHttp.WinHttpRequest.5.1" и помещает ссылку на него в переменную HTTP, поэтому нужно дальше её и использовать для обращения к свойствам и методам данного объекта.
Свойства и методы WinHttp.WinHttpRequest.5.1 описаны здесь. В частности SetProxy. Первый параметр ProxySetting, который равен HTTPREQUEST_PROXYSETTING_PROXY := 0x2, все значения можно посмотреть, например, здесь.

vlasartem21 пишет:

А что еще намешано?

HTTP.Open("GET",  "http://api.ipify.org/", false)

Последний параметр false, это означает, что запрос будет сделан синхронно, то-есть скрипт будет ждать его завершения, и до этого ничего не делать, соответственно строчки

sleep 1000
HTTP.WaitForResponse(1)

не нужны. У меня работает так:

HTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")
HTTP.SetProxy(2, "168.119.137.56:3128")
HTTP.Open("GET", "http://api.ipify.org/", false)
HTTP.Send()
result := HTTP.ResponseText
MsgBox, %result%

Не уверен, что прокси из вашего кода действующий.
С прокси с логином и паролем не приходилось иметь дела, так что гуглите.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Прокси в GET запросе

teadrinker
Спасибо большое, стало все понятно насчет вот этих false тоже хотел спросить. Но вы объяснили.
Я попробовал другой прокси, старый уже не работает. Но не выходит, все равно выдает мой домашний айпи

HTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")
HTTP.SetProxy(2, "45.153.33.166:3128")
HTTP.Open("GET", "http://api.ipify.org/", false)
HTTP.Send()
result := HTTP.ResponseText
MsgBox, %result%

Ничего не пойму, ведь прокси работает, проверил его зайдя через другой софт, но почему то AHK по прежнему выдает домашний IP. Если прокси медленный может ли он просто не применить этот прокси? И почему при отключении ошибок, ahk не говорит что прокси не работает?

6

Re: AHK: Прокси в GET запросе

vlasartem21 пишет:

Можно ли подключить прокси формата прокси:порт:логин:пароль?

HTTPREQUEST_SETCREDENTIALS_FOR_PROXY
https://docs.microsoft.com/en-us/window … redentials

7

Re: AHK: Прокси в GET запросе

Malcev Открыл и ничего не могу понять. Подскажите пожалуйста, как это в ahk добавить?

8

Re: AHK: Прокси в GET запросе

Скрипт не могу протестить толком, грешу на публичные прокси. Попросил знакомого проверить (у него свои прокси), все работает как надо, AHK подключается через прокси. У меня же не работает, наверное из за этих публичных прокси. Есть у меня покупные с логином и паролем. Я не знаю как поставить туда логин и пароль, пробовал разных форматов, но открыв ссылку Malcev понял что не так просто все. Сам не могу разобраться. Читаю и для меня это как темный лес. Хотя пытаюсь понять что то.

9

Re: AHK: Прокси в GET запросе

vlasartem21 пишет:

Если прокси медленный может ли он просто не применить этот прокси?

Не могу подсказать, совсем нет опыта работы с прокси.

vlasartem21 пишет:

И почему при отключении ошибок, ahk не говорит что прокси не работает?

AHK в данном случае показывает ошибки, которые выдаёт COM-объект. Если ошибок нет, значит с точки зрения объекта всё в норме.

vlasartem21 пишет:

Подскажите пожалуйста, как это в ahk добавить?

Должно так работать:

...
HTTP.Open("GET", "http://api.ipify.org/", false)
HTTP.SetCredentials(UserName, Password, HTTPREQUEST_SETCREDENTIALS_FOR_PROXY := 1)
...
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: AHK: Прокси в GET запросе

teadrinker О май гуд! Все сработало когда добавил HTTPREQUEST_SETCREDENTIALS_FOR_PROXY. Попробовал свои платные прокси. Лог и пасс в кавычках указал. И заработало!
С обеда мучаюсь сижу, да еще публичные нигде не могу найти рабочие, но они мне и не нужны, это для теста, все равно ч/з платные буду работать. Как же я счастлив что все заработало! Просто огромная благодарность вам уважаемые Malcev и особенно teadrinker за то что еще все разжевали так просто и доступно, теперь хоть понял что эти false значат, а то смотрел на них и думал что же они там отключают такого Спасибо вам еще раз большое, вы меня очень и очень выручили!