Что нового

Открыть сайт через прокси

maxim_porsche

Новичок
Сообщения
25
Репутация
0
Версия AutoIt: 3.3.12.0

Описание:

Код:
HttpSetProxy(2,"202.118.236.130:7777")
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("GET", 'www.autoitscript.com')
$oHTTP.Send("")
_IECreate("http://autoitscript.com", 1, 1, 0)


Примечания:
Имеется вот такой вот код. Почему не же не открывается страница с использованием прокси?(
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
maxim_porsche [?]
не открывается страница с использованием прокси
Всё прекрасно работает.
Код:
HttpSetProxy(2,"202.118.236.130:7777")
Local $sData = BinaryToString(InetRead("http://www.whatsmyip.us/"),4)
$o_HtmlFile = ObjCreate('htmlfile')
$o_HtmlFile.open
$o_HtmlFile.write($sData)
$o_HtmlFile.close

$oBR = $o_HtmlFile.all
ConsoleWrite(StringFormat('Your IP is: %s\r\n', $oBR.item(18).innerText))



Добавлено:
Сообщение автоматически объединено:

Код:
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.SetProxy(2, "202.118.236.130:7777")
$oHTTP.Open("GET", 'http://www.whatsmyip.us/')
$oHTTP.Send("")
$oHTTP.WaitForResponse()

$o_HtmlFile = ObjCreate('htmlfile')
$o_HtmlFile.open
$o_HtmlFile.write($oHTTP.ResponseText())
$o_HtmlFile.close

$oBR = $o_HtmlFile.all
ConsoleWrite(StringFormat('Your IP is: %s\r\n', $oBR.item(18).innerText ))
 
Автор
M

maxim_porsche

Новичок
Сообщения
25
Репутация
0
Всё равно не поймю куда вставить :(

Код:
#include <IE.au3>

$sLogin = 'Login'
$sPass = 'Pass'


$sUrl = 'http://www.ya.ru'
$oIE = _IECreate($sUrl)
$oLogin = _IEGetObjByName($oIE, 'username')
$oPass = _IEGetObjByName($oIE, 'password')
$oForm = _IEGetObjByName($oIE, 'loginForm')
_IEFormElementSetValue($oLogin, $sLogin)
_IEFormElementSetValue($oPass, $sPass)
_IELoadWait($oIE)
_IEFormSubmit ($oForm,0)


Это полный код скрипта,мне нужно реализовать открытие ссылки через указанный мною прокси-сервер :( Помогите нубу :(
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
сначала _IEFormSubmit ($oForm,0), а потом _IELoadWait($oIE) - это первое. Второе - официальная справка говорит о том, что не стоит использовать _IEFormSubmit, так как на многих формах есть кнопки на которые навешаны дополнительные javascript проверки и прочее безобразие. Вместо этого нужно использовать эмуляцию клика по кнопке(ссылке). Для того, чтобы включить прокси, нужно в самом начале этот прокси назначить функцией HttpSetProxy(), а уже потом $oIE = _IECreate($sUrl) итд итп...
 
Автор
M

maxim_porsche

Новичок
Сообщения
25
Репутация
0
Код:
#include <IE.au3>
HttpSetProxy(2,"202.118.236.130:7777")
$sLogin = 'Login'
$sPass = 'Pass'


$sUrl = 'http://2ip.ru'
$oIE = _IECreate($sUrl)
$oLogin = _IEGetObjByName($oIE, 'username')
$oPass = _IEGetObjByName($oIE, 'password')
$oForm = _IEGetObjByName($oIE, 'loginForm')
_IEFormElementSetValue($oLogin, $sLogin)
_IEFormElementSetValue($oPass, $sPass)
_IEFormSubmit ($oForm,0)
_IELoadWait($oIE)

Эмм,ну тогда получается вот так должно быть правильнее?Хмм,странно,у меня почему-то всё равно не работает(
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Наверное это работает только для функций InetGetSize(), InetRead() итд... Тогда воспользуйтесь примером Гарретта. Но в таком случаи у вас отрывается сама концепция того, что вы рулите именно интернет эксплорером. Вам придется оперировать методами GET & POST, то есть все это не будет работать с _IECreate и иже с ним. Можно менять проксик в реестре, а после того как скрипт отработает, то возвращать его на место. Тогда будет работать и _IECreate() и прочие _IE_ функции.
 
Автор
M

maxim_porsche

Новичок
Сообщения
25
Репутация
0
oesoes сказал(а):
. Но в таком случаи у вас отрывается сама концепция того, что вы рулите именно интернет эксплорером. Вам придется оперировать методами GET & POST, то есть все это не будет работать с _IECreate и иже с ним. Можно менять проксик в реестре, а после того как скрипт отработает, то возвращать его на место. Тогда будет работать и _IECreate() и прочие _IE_ функции.
Мне бы вот это реализовать,потому что ссылки будут в IE открываться :smile:
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Код:
#include <IE.au3>

Local Const $sRegPath = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Local Const $sProxyAddr = "202.118.236.130:7777"

Func _EnableProxy($sAddress)
	RegWrite($sRegPath, "ProxyEnable", "REG_DWORD", 1)
    RegWrite($sRegPath, "ProxyServer", "REG_SZ", $sAddress)
EndFunc

Func _DisableProxy($sAddress)
	RegWrite($sRegPath, "ProxyEnable", "REG_DWORD", 0)
	RegWrite($sRegPath, "ProxyServer", "REG_SZ", $sAddress)
EndFunc

Local $sOldProxy = RegRead($sRegPath,"ProxyServer")
_EnableProxy($sProxyAddr)

Local $oIE = _IECreate("http://2ip.ru")
_IELoadWait($oIE)

_DisableProxy($sOldProxy)
 
Автор
M

maxim_porsche

Новичок
Сообщения
25
Репутация
0
Ох..всё равно не рабоет(((

Код:
#include <IE.au3>
$sLogin = 'Login'
$sPass = 'Pass'

Local Const $sRegPath = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Local Const $sProxyAddr = "218.213.104.17:8080"

Func _EnableProxy($sAddress)
    RegWrite($sRegPath, "ProxyEnable", "REG_DWORD", 1)
    RegWrite($sRegPath, "ProxyServer", "REG_SZ", $sAddress)
EndFunc

Func _DisableProxy($sAddress)
    RegWrite($sRegPath, "ProxyEnable", "REG_DWORD", 0)
    RegWrite($sRegPath, "ProxyServer", "REG_SZ", $sAddress)
EndFunc

Local $sOldProxy = RegRead($sRegPath,"ProxyServer")
_EnableProxy($sProxyAddr)

Local $oIE = _IECreate("http://2ip.ru")
_IELoadWait($oIE)

_DisableProxy($sOldProxy)


$oLogin = _IEGetObjByName($oIE, 'username')
$oPass = _IEGetObjByName($oIE, 'password')
$oForm = _IEGetObjByName($oIE, 'loginForm')
_IEFormElementSetValue($oLogin, $sLogin)
_IEFormElementSetValue($oPass, $sPass)
_IEFormSubmit ($oForm,0)
_IELoadWait($oIE)


Вот такой вот код получился,если не правильно,то поправьте пожалуйста(
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
maxim_porsche [?]
если не правильно,то поправьте пожалуйста

Код:
Global Const $INTERNET_OPTION_SETTINGS_CHANGED = 39
Global Const $INTERNET_OPTION_REFRESH = 37

$sProxy = "202.118.236.130:7777"
$sUrl = 'http://www.whatsmyip.us/'

_SetProxy($sProxy, 1)
$oIE = _IECreate($sUrl)
$oText = _IETagNameGetCollection($oIE, 'textarea', 0)
ConsoleWrite(StringFormat('[Proxy Set] Your IP is: %s\r\n', $oText.innerText ))
_SetProxy($sProxy, 0)

$oIE = _IECreate($sUrl)
$oText = _IETagNameGetCollection($oIE, 'textarea', 0)
ConsoleWrite(StringFormat('[Proxy Delete] Your IP is: %s\r\n', $oText.innerText ))

Func _SetProxy($s_Proxy, $i_Flag)
   
   If $i_Flag > 1 Or $i_Flag < 0 Then Return 0
	  
   If Not RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable") And $i_Flag Then
	  RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", "REG_DWORD", $i_Flag)
	  If RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer") <> $s_Proxy Then _
		 RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer", "REG_SZ", $s_Proxy)
   Else
	  RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", "REG_DWORD", $i_Flag)
   EndIf
   _InternetSetOption($INTERNET_OPTION_SETTINGS_CHANGED)
   _InternetSetOption($INTERNET_OPTION_REFRESH)
   
   Return 1
EndFunc ;==>_SetProxy

Func _InternetSetOption($i_Option)
   DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', $i_Option, 'str', 0, 'long', 0)
EndFunc;==>_InternetSetOption
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Не работает из за того, что Вы даже думать не хотите (
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
OffTopic:
oesoes [?]
Не работает из за того, что Вы даже думать не хотите
К сожалению, это явление всё чаще встречается в современном мире. :(
 
Верх