Что нового

Проверка списка прокси из текстового файла

G

GenoTIP

Гость
Почему-то при любом правильном и не правильном прокси в первой строке текстового файла всегда выводится "Первая строка рабочая " подскажите где условие не правильное, что он не перебирает прокси.. а пробует только ту, что первая. Причем прокси так и не ставиться - в реестр забивается, а толку 0, до этого использовал эту же функцию установки прокси иначе и все было ок.

Код:
#RequireAdmin
#include <file.au3>
#include <array.au3>
#include <ie.au3>
;http://autoit-script.ru/index.php/topic,3214.0.html
OnAutoItExitRegister("_Exit")
_Save()

;загружаем прокси
Dim $aProxies
If Not _FileReadToArray(@ScriptDir & "\replacement.txt", $aProxies) Then
	MsgBox(4096, "Error", " Error reading log to Array     error:" & @error)
	Exit
EndIf

$sURL = "http://www.admuncher.com/"
$i_Proxy = 1
$ok = 0
_ProxyChange($aProxies[$i_Proxy])
Sleep(500)
_GetHTML($sURL)

Func _GetHTML($sURL, $sSendParam = "")
	$i_Proxy = 1
	$ok = 0
    Local $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
    $oHTTP.Open("GET", $sURL)
    $oHTTP.SetRequestHeader("Content-Type", "text/html")
    $oHTTP.SetRequestHeader("Accept", "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/vnd.ms-excel, application/msword, */*")
    $oHTTP.SetRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)")
    $oHTTP.SetRequestHeader("Host", "www.admuncher.com")
    $oHTTP.SetRequestHeader("Accept-Language", "ru")
    $oHTTP.Send
    If (@error) Or ($oHTTP.Status <> 200) Then
		While $ok <> 1
			$i_Proxy += 1
			_ProxyChange($aProxies[$i_Proxy])
			Local $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
			$oHTTP.Open("GET", $sURL)
			$oHTTP.SetRequestHeader("Content-Type", "text/html")
			$oHTTP.SetRequestHeader("Accept", "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/vnd.ms-excel, application/msword, */*")
			$oHTTP.SetRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)")
			$oHTTP.SetRequestHeader("Host", "www.admuncher.com")
			$oHTTP.SetRequestHeader("Accept-Language", "ru")
			$oHTTP.Send
				If (not @error) Then
					ConsoleWrite($aProxies[$i_Proxy] & @LF)
					$ok = 1
				EndIf
			Sleep(200)
		WEnd
        MsgBox(0, '', 'Error!')
        Return SetError(1, 0, '')
    Else
		ConsoleWrite('Первая строка рабочая ' & $aProxies[$i_Proxy] & @LF)
        ;Return $oHTTP.ResponseText
    EndIf
EndFunc   ;==>_GetHTML
Exit



;Меняем прокси
Func _ProxyChange($sProxy = '')
	RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer", "REG_SZ", $sProxy)
EndFunc   ;==>_ProxyChange

;Сохраняем значения прокси
Func _Save()
	Global $sProxyEnable = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable")
	Global $sProxyServer = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer")
	RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", "REG_DWORD", 1)
EndFunc   ;==>_Save

;Загружаем значения прокси
Func _Load()
	RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", "REG_DWORD", $sProxyEnable)
	RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer", "REG_SZ", $sProxyServer)
EndFunc   ;==>_Load

;По выходу загружаем сохраненные настройки прокси
Func _Exit()
	_Load()
	MsgBox(0, 0, "Вышли из программы")
	Exit
EndFunc   ;==>_Exit
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
Код:
#RequireAdmin
#include <file.au3>
#include <array.au3>
#include <ie.au3>
;http://autoit-script.ru/index.php/topic,3214.0.html
OnAutoItExitRegister("_Exit")

Global $sProxyEnable, $sProxyServer

_Save()

;загружаем прокси
Dim $aProxies
If Not _FileReadToArray(@ScriptDir & "\replacement.txt", $aProxies) Then
    MsgBox(4096, "Error", " Error reading log to Array     error:" & @error)
    Exit
EndIf

$sURL = "http://www.admuncher.com/"
For $i_Proxy = 1 to $aProxies[0]
   _ProxyChange($aProxies[$i_Proxy])
   Sleep(500)
   ConsoleWrite(_GetHTML($sURL)&@CRLF)
Next

Func _GetHTML($sURL, $sSendParam = "")
    Local $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
    $oHTTP.Open("GET", $sURL)
    $oHTTP.SetRequestHeader("Content-Type", "text/html")
    $oHTTP.SetRequestHeader("Accept", "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/vnd.ms-excel, application/msword, */*")
    $oHTTP.SetRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)")
    $oHTTP.SetRequestHeader("Host", "www.admuncher.com")
    $oHTTP.SetRequestHeader("Accept-Language", "ru")
    $oHTTP.Send
	If @error Then
	   Return $aProxies[$i_Proxy]&" @error = "&@error
    EndIf
	If $oHTTP.Status <> 200 Then
	   Return $aProxies[$i_Proxy]&" $oHTTP.Status <> 200"
    EndIf
	Return $aProxies[$i_Proxy]&" - OK"
EndFunc   ;==>_GetHTML

;Меняем прокси
Func _ProxyChange($sProxy = '')
   RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", "REG_DWORD", 1)
   RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer", "REG_SZ", $sProxy)
EndFunc   ;==>_ProxyChange

;Сохраняем значения прокси
Func _Save()
    $sProxyEnable = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable")
    $sProxyServer = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer")
EndFunc   ;==>_Save

;Загружаем значения прокси
Func _Load()
    RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", "REG_DWORD", $sProxyEnable)
    RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer", "REG_SZ", $sProxyServer)
EndFunc   ;==>_Load

;По выходу загружаем сохраненные настройки прокси
Func _Exit()
    _Load()
    MsgBox(0, 0, "Вышли из программы")
    Exit
EndFunc   ;==>_Exit

ЗЫ: это вот под циклом...
ЗЫЫ: лично у меня прокси прописывается и в реестре и в IE.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
GenoTIP,
ИМХО, так проще правильнее задать прокси:
Код:
;...
$oHTTP.setProxy(2, '111.111.111.111:8080')
;...
 
Автор
G

GenoTIP

Гость
---Zak---
почему-то всему присваивается - ОК, видимо прокси не ставится опятьже.. заходит на сайт с моего ip
--
прокси само прописывается нормально лишь в реестр,а так толку 0


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

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

Код:
For $i_Proxy = 1 to $aProxies[0]
	Global $ProxyServer = $aProxies[$i_Proxy]
	Global $oHttp = ObjCreate ("WinHttp.WinHttpRequest.5.1")
	$oHttp.SetProxy(2,$ProxyServer)
	httpget("http://www.ru",$ProxyServer) ;http://www.guimp.com/
Next


func httpget($url,$ProxyServer)
	$sTimer = TimerInit()
    $status = $oHttp.Open("GET", $url,false)
	Execute("$oHttp.Send()")
    if @error Or $oHttp.Status <> 200 then
        SetError(1)
    Else
        SetError(0)
        FileWrite("good_proxy.txt",$ProxyServer&@CRLF)
    EndIf
EndFunc
 

joker2d

Новичок
Сообщения
182
Репутация
0
---Zak---
GenoTIP

Использовал ваши примеры в Windows 7 32-bit
Со сменой прокси в браузере и в реестре проблем нет, но когда ставлю заведомо не рабочий прокси все равно пишет ОК
В чем может быть проблема ?

Проверял в браузере прокси точно не работает
 
Верх