Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

fsockopen() kroz proxy

[es] :: PHP :: fsockopen() kroz proxy

[ Pregleda: 3422 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

igor_ns
Igor Paunov
IPSIS IT Consulting
Novi sad

Član broj: 4253
Poruke: 88
*.stylos.co.yu

Sajt: www.tagws.net


Profil

icon fsockopen() kroz proxy03.10.2002. u 09:12 - pre 233 meseci
Nalazim se iza proxy servera koji zahteva da se prijavim (login-password) da bih mogao da pristupim WEB-u. Kako da iz php skripte pristupim WEB-u sa fsockopen/fputs/fgets u takvom okruženju. Izmena konfiguracije proxy servera nije moguća. Proxy server je jedna, a Apache/PHP server je druga mašina.

Nadam se da sam bio jasan.

Pregledao sam malo mailing listu na php-net i video da je to često postavljeno pitanje, ali nisam našao odgovor.

Može li neko sa ovog foruma da mi pomogne.
unapred hvala
Igor
Igor Paunov
 
Odgovor na temu

FlatLine
Beograd

Član broj: 873
Poruke: 72
*.isionline-dialin.de



Profil

icon Re: fsockopen() kroz proxy03.10.2002. u 11:39 - pre 233 meseci
Pošto nisam iza proxy-ja koji zahteva authorization, ovo je samo otprilike kako se to radi, tj. za konekciju sam siguran samo za authorization nisam.
Code:
<?php

//==========================================================[ Proxy Settings ]
$proxyHost = 'proxy.blablabla.bla';
$proxyPort = '8080';
$proxyUser = 'username';
$proxyPass = 'password';
$proxyAuth = base64_encode ("$proxyUser:$proxyPass");

//====================================================[ Remote Hots Settings ]
$host = 'slashdot.org';
$port = '80';
$page = '';

//========================================================[ Proxy Connection ]
$fp = fsockopen ($proxyHost, $proxyPort, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)";
} else {
    fputs ($fp, "GET http://$host/$page HTTP/1.0\r\nHost: $host\r\nProxy-Authorization: $proxyAuth\r\n\r\n");
    while (!feof($fp)) {
        $buffer .= fgets ($fp, 128);
    }
    fclose ($fp);
}

print ($buffer);

?>

guru in training
 
Odgovor na temu

igor_ns
Igor Paunov
IPSIS IT Consulting
Novi sad

Član broj: 4253
Poruke: 88
*.stylos.co.yu

Sajt: www.tagws.net


Profil

icon Re: fsockopen() kroz proxy04.10.2002. u 08:55 - pre 233 meseci
Hvala puno na odgovoru. Iz tvog odgovora i malo surfovanja rodila se funkcija:

Code:

function get_url_proxy($proxy_server, $proxy_port, $proxy_user, $proxy_pass, $url)
{
 $fp = @fsockopen($proxy_server, $proxy_port); 
 if ($fp > 0)
 { 
  $realm = base64_encode($proxy_user.":".$proxy_pass);

  fputs($fp, "GET $url HTTP/1.0\r\n");
  fputs($fp, "Proxy-Connection: Keep-Alive\r\n");
  fputs($fp, "User-Agent: PHP ".phpversion()."\r\n");
  fputs($fp, "Pragma: no-cache\r\n");
  fputs($fp, "Proxy-authorization: Basic $realm\r\n");
  fputs($fp, "\r\n");

  $o = "\0";
  while (!feof($fp) && $o != "\r\n")
    $o = fgets($fp, 512);

  while (!feof($fp))
   $buf .= fgets($fp, 1024); 
  fclose($fp); 
 } 
 return $buf; 
}

pozdrav.
Igor
Igor Paunov
 
Odgovor na temu

[es] :: PHP :: fsockopen() kroz proxy

[ Pregleda: 3422 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.