Winhttp Proxy

  • Hi,

    Ich komme jetzt nicht mehr weiter und zwar will ich mich nur einfach über ein Proxy verbinden. Nur leider komme ich ab hier nicht weiter:

    [autoit]

    Global $ip = "78.46.69.87"
    Global $iAccessType = "HTTPREQUEST_PROXYSETTING_PROXY"
    Global $Proxy = $ip & ":80"
    Global $ProxyBypass = "localhost"
    Global $i = _WinHttpSetDefaultProxyConfiguration($iAccessType, $Proxy, $ProxyBypass)
    MsgBox(64,"",$i)

    [/autoit]

    Warum bekomme ich einen Fehler(0) zurück ?

    LG
    Fireman-HH

    Einmal editiert, zuletzt von Fireman-HH (22. November 2010 um 16:59)

  • Sry.... aber geht leider auch nicht. :(
    Aber danke dir.
    Ich habe es auch schlecht erklärt. :)

    Also ich habe ein Scripte für Google geschrieben. Nur um Winhttp zulernen. Die Ip Adresse habe ich mir dort geholt http://www.proxy-listen.de/Proxy/Proxyliste.html . Bitte Nicht verzweifeln ich bin absulut neu in sachen Winhttp :) . Aber es ist doch eigentlich auch kein "localhost" oder ?
    Da ich mich ja über einen nicht auf mein PC befinden Proxy Server zugreifen will, oder liege ich da falsch ?

    Vielen Vielen Dank schon mal.

    P.S Muss das vor _WinHttpOpen() ?

    LG
    Fireman-HH

  • Ich hatte in der Funktion einen Fehler drin, da ich es nicht getestet hatte. Jetzt geht es.

    Der String in ProxyBypass sagt aus, welche Domains nicht über den Proxy aufgerufen werden. localhost z.B. kann man nicht über den Proxy aufrufen und wenn man den Proxy für andere Seiten nicht haben will, sollte man sie hier eintragen.
    Der eigentliche Proxy steht in $sProxy.

    Spoiler anzeigen
    [autoit]

    #include<WinHTTP.au3>
    Global Const $tagWINHTTP_PROXY_INFO = "DWORD dwAccessType;ptr lpszProxy;ptr lpszProxyBypass;"

    [/autoit] [autoit][/autoit] [autoit]

    Func _WinHttpProxyInfoCreate($dwAccessType, $sProxy, $sProxyBypass)
    Local $tWINHTTP_PROXY_INFO[2] = [DllStructCreate($tagWINHTTP_PROXY_INFO), DllStructCreate('wchar proxychars[' & StringLen($sProxy)+1 & ']; wchar proxybypasschars[' & StringLen($sProxyBypass)+1 & ']')]
    DllStructSetData($tWINHTTP_PROXY_INFO[0], "dwAccessType", $dwAccessType)
    DllStructSetData($tWINHTTP_PROXY_INFO[0], "lpszProxy", DllStructGetPtr($tWINHTTP_PROXY_INFO[1], 'proxychars'))
    DllStructSetData($tWINHTTP_PROXY_INFO[0], "lpszProxyBypass", DllStructGetPtr($tWINHTTP_PROXY_INFO[1], 'proxybypasschars'))
    DllStructSetData($tWINHTTP_PROXY_INFO[1], "proxychars", $sProxy)
    DllStructSetData($tWINHTTP_PROXY_INFO[1], "proxybypasschars", $sProxyBypass)
    Return $tWINHTTP_PROXY_INFO
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    $hInternet = _WinHttpOpen()

    [/autoit] [autoit][/autoit] [autoit]

    $hConnect = _WinHttpConnect($hInternet, "api.hostip.info")
    $standard = _WinHttpSimpleRequest($hConnect, "GET", "/get_html.php")
    _WinHttpCloseHandle($hConnect)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $tProxyInfo = _WinHttpProxyInfoCreate($WINHTTP_ACCESS_TYPE_NAMED_PROXY, "122.146.153.125:80", "localhost")
    _WinHttpSetOption($hInternet, $WINHTTP_OPTION_PROXY, $tProxyInfo[0])

    [/autoit] [autoit][/autoit] [autoit]

    $hConnect = _WinHttpConnect($hInternet, "api.hostip.info")
    $mit_proxy = _WinHttpSimpleRequest($hConnect, "GET", "/get_html.php")
    _WinHttpCloseHandle($hConnect)

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, 'Proxyinfo', "Vor Proxy setzen" & @CRLF & $standard & @CRLF & @CRLF & "Nach Proxy setzen: " & @CRLF & $mit_proxy)

    [/autoit] [autoit][/autoit] [autoit]

    _WinHttpCloseHandle($hInternet)

    [/autoit]