[PHP]fopen() via proxy server

Pagina: 1
Acties:
  • 107 views sinds 30-01-2008

  • Rukapul
  • Registratie: Februari 2000
  • Laatst online: 08:42
Is er iemand die een scriptje heeft dat in staat is van een proxy server gebruik te maken?

Dus ipv:
fopen("http://www.server.com/bestand.html", "r")

fopen_proxy("http://www.server.com/bestand.html", "r")
waarbij deze laatste dan via m'n (chell) proxyserver moet lopen

Paul

  • Norjee
  • Registratie: April 2000
  • Niet online
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?
&amp;lt;?
function get_site($site, $go_post=0, $referer="none", $form="")
    {
    // nu met proxy support :) 
    global $koekje;
    global $host;
    global $proxy_server;
    global $proxy_port;
    //global $form;
    
    if ((strlen($proxy_server) &amp;gt; 1) &amp;&amp; is_int($proxy_port)) $use_proxy=true;
    
    if ($use_proxy)
        {
        $fp = fsockopen( $proxy_server , $proxy_port , $err_num, $err_string, 20);
        $site = "http://".$host."/".$site;
        //echo "connection through proxy&amp;lt;br&amp;gt;";
        }
        else
        {
        $fp = fsockopen($host , 80 , $err_num, $err_string, 20);
        $site ="/".$site;
        //echo "connection without proxy&amp;lt;br&amp;gt;";
        }
        
    $body ="";
    
    settype($form, "array");
    if ($go_post==1)
        {
        while(list($key,$val) = each($form)) 
                $body .= urlencode($key)."=".urlencode($val)."&amp;";
        
        //unset($form);
        //settype($form, "array");
        $request="POST";
        //echo $body;
        }
        else 
        {
        $request="GET";
        }
        
    settype($koekje, "array");    
    @reset($koekje);
    while(list($key,$val) = @each($koekje)) $koekje_string .= $key."=".$val."; ";
    $koekje_string=preg_replace("/;\s*\Z/" , "" , $koekje_string);
    
        
    
    $req  = $request." ".$site." HTTP/1.1\n";
    $req .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, */*\n";
    if ($referer!="none") $req .= "Referer: [url=http://".$host."/".$referer."\n";]http://".$host."/".$referer."\n";[/url]
    $req .= "Accept-Language: en-us\n";
    $req .= "Accept-Encoding: gzip, deflate\n";
    $req .= "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)\n";
    $req .= "Host: ".$host."\n";
    $req .= "Connection: Keep-Alive\n";
    $req .= "Cookie: ".$koekje_string."\n";
    
    // checken of er ook data gepost moet worden;
    if ($go_post==1) 
        {
        $req .= "Content-type: application/x-www-form-urlencoded\n";
        $req .= "Content-length: ".strlen($body)."\n";
        }    
        
    $req .= "\n";
    
    //echo nl2br($req.$body)."&amp;lt;hr&amp;gt;";    
    //usleep(50);
    fwrite($fp, $req.$body,strlen($req.$body)) || die("error");
    $retries = 0;    
    
    while(!feof($fp))
        { 
        $string = fgets($fp,1024);
        $retries = 0;
        $comp_response[]=$string;
        if(preg_match("/^set-cookie:[\s]+([^=]+)=([^;]+)/i", $string , $match))
            {
            $koekje[$match[1]] = $match[2];
            }
        }
    fclose($fp);
    
    
    return $comp_response;
    }
?&amp;gt;

$koekje = array met koekjes, heb je verder niets mee nodig
$host = de host, bijv muon.nl
$proxy_server = proxy server, niet noodzakelijk
 $proxy_port = dus ook niet nodig.
 
 
post data zet je in een array (of was het nu hash) 
bijv $p_data[naam]='blaat';
     $p_data[datum]=time();
 
functie aanroepen: voor muon.nl/blaat/index.htm
$host= 'muon.nl';
$site = get_site('blaat/index.htm', 1, , $p_data);
 
als je geen data post: 
$site = get_site('blaat/index.htm'');
 
en als je er nog een referen in wilt proppen
$site = get_site('blaat/index.htm', 1,'http///weetikveelwatvoorsite' , $p_data);
 
response laten zien: echo imlpode("" , $site) (het is een array)
 
 
?>

  • Rukapul
  • Registratie: Februari 2000
  • Laatst online: 08:42
Thanks! :)

Paul

Verwijderd

Ik wil dit script ook graag gebruiken, maar de proxy waar ik op moet inloggen vraagt om username+password.

Waar moet ik dat instellen, want ik heb al van alles geprobeerd maar het lukt gewoon niet.

Verwijderd

stinkt naar script request en hij krijgt um nog ook! Nou ja, het zal wel

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Moet je een Authorization-header meesturen:
code:
1
2
3
4
5
...
$req .= "Cookie: ".$koekje_string."\n";
$req .= "Authorization: (username) (password)\n";
                               ^ (dit moet toch \r\n zijn?)
...
Op woensdag 14 november 2001 14:41 schreef daniel_hoenderdos het volgende:
stinkt naar script request en hij krijgt um nog ook! Nou ja, het zal wel
topic is bijna een jaar oud he (toen was de lettergrootte van de php-tag nog normaal :))

  • Rukapul
  • Registratie: Februari 2000
  • Laatst online: 08:42
Op het gevaar af te flamen...
Op woensdag 14 november 2001 14:41 schreef daniel_hoenderdos het volgende:
stinkt naar script request en hij krijgt um nog ook! Nou ja, het zal wel
Tja. Je kan het opvatten als script request. Aan de andere kant kun je het opvatten als algemene vraag hoe je via php van een proxyserver gebruik kunt maken.
Gebruikersnaam: daniel_hoenderdos
Voornaam: Daniël
Achternaam: Hoenderdos
E-mail adres:
Aantal posts: 647
Gelukkig heb je er weer een tech. post bij he.
Gem. aantal posts/dag: 4
Geregistreerd op: 01 juni 2001
Als ik het goed begrijp het je kritiek op een vraag die gepost is voordat jij je op GoT had aangemeld...

I rest my case.

Overigens wil ik de poster van het script bedanken voor het goed werkende script :) Heb er nog wel flink aan moeten sleutelen om hem goed werkend te krijgen, maar de basis was erg behulpzaam *D

Verwijderd

Op woensdag 14 november 2001 14:43 schreef marcusk het volgende:
Moet je een Authorization-header meesturen:
code:
1
2
3
4
5
...
$req .= "Cookie: ".$koekje_string."\n";
$req .= "Authorization: (username) (password)\n";
                               ^ (dit moet toch \r\n zijn?)
...

[..]

topic is bijna een jaar oud he (toen was de lettergrootte van de php-tag nog normaal :))
Zoiets had ik al geprobeerd, maar dit werkt nog steeds niet bij mij. Doe ik nu echt iets verkeerd? Of ligt het nu aan de proxy

Verwijderd

Overigens wil ik de poster van het script bedanken voor het goed werkende script :) Heb er nog wel flink aan moeten sleutelen om hem goed werkend te krijgen, maar de basis was erg behulpzaam *D
[/quote]

Werkt dat ook met authorisatie?

Verwijderd

Okay flamebait taken.
Op woensdag 14 november 2001 14:50 schreef Rukapul het volgende:
Op het gevaar af te flamen...
[..]
Tja. Je kan het opvatten als script request. Aan de andere kant kun je het opvatten als algemene vraag hoe je via php van een proxyserver gebruik kunt maken.
Tja, alles kan nietwaar? lijkt me een duidelijk script request.: Is er iemand die een scriptje heeft dat in staat is van een proxy server gebruik te maken? Lijkt me voor zich spreken.

[..]

Gelukkig heb je er weer een tech. post bij he.
Ja, lekker boeiend zo'
n tech post. Daar doe je het tenslotte allemaal voor. Geez. |:(

[..]

Als ik het goed begrijp het je kritiek op een vraag die gepost is voordat jij je op GoT had aangemeld...

I rest my case.
Tja, dat weet je niet als je alleen op mijn profiel afgaat, maar ik huppel hier al wat langer rond hoor. Ik kom al een behoorlijk lange tijd op Got (alsof daar je status vanaf zou hangen (lekker elitair! :r) en weet dus waar ik het het over heb. Om redenen die verder niet relevant zijn ben ik in een crash ooit eens een profiel (van DOS overigens) kwijt geraakt en was ik genoodzaakt een nieuwe usernaam aan te maken. de reden dat ik niet zoveel post, is dat ik de meeste topics niet eens postingswaardig vindt, en omdat ik op kamers woon en internet er niet bij kan betalen.
Tevreden nu? Heb ik de situatie voldoende uitgelegd? Fijn zo.

Verwijderd

Op woensdag 14 november 2001 15:18 schreef daniel_hoenderdos het volgende:
Okay flamebait taken.
[..]

Tevreden nu? Heb ik de situatie voldoende uitgelegd? Fijn zo.
Laten we het bij het topic houden

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

/flames

Klaar voor een nieuwe uitdaging.

Pagina: 1

Dit topic is gesloten.