SORU
26 AĞUSTOS 2009, ÇARŞAMBA


bir proxy arkasında file_get_contents?

Örneğin iş yerinde temel olarak port 80 erişmek için bir proxy kullanmak zorundayız, her kullanıcı için kendi özel giriş var.

Benim geçici çözüm curl temelde bir proxy sunucusu üzerinden kendim olarak giriş ve ihtiyacım olan harici veri erişimi için kullanıyor.

file_get_contents() gibi bir şey çağırmak için çalışır içimizde hep bir proxy sunucusu üzerinden gider yani ben gelişmiş bir php ayarı falan mı var? Eğer tek yolu buysa yeniden derlemek için bir ağrı olur Windows ATM ediyorum.

Sebebi benim geçici çözüm geçici olur çünkü ihtiyacım var bir çözümü olan genel ve işleri için birden fazla kullanıcı kullanmak yerine, bir kullanıcının kimlik bilgilerini ( İve kabul isteyen ayrı bir kullanıcı hesabı, sadece bunu yapmak için ama parolalarını sık sık ve bu teknik ihtiyaçlar için dağıtılması boyunca bir düzine ya da daha fazla site ). Sabit-kodu kimlik temelde çözüm curl kullanmak istemiyorum.

CEVAP
26 AĞUSTOS 2009, ÇARŞAMBA


Kimlik doğrulaması gerektirmeyen bir proxy sunucusu üzerinden/üzerine file_get_content kullanmak için, bir şeyler yapmalıyım gibi :

(Bu bir test edemiyorum : benim proxy kimlik doğrulaması gerektirir

$aContext = array(
    'http' => array(
        'proxy' => 'tcp://192.168.0.2:3128',
        'request_fulluri' => true,
    ),
);
$cxContext = stream_context_create($aContext);

$sFile = file_get_contents("http://www.google.com", False, $cxContext);

echo $sFile;

Tabii ki, senin için sorun olan benim proxy IP ve port değiştirme ;-)


Eğer böyle bir hata alıyorsanız :

Warning: file_get_contents(http://www.google.com) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 407 Proxy Authentication Required

Eğer bir proxy kimlik doğrulaması gerektiriyor demek.


Eğer bir proxy kimlik doğrulaması gerektiriyorsa, birkaç satır eklemek için, bu gibi olacak :

$auth = base64_encode('LOGIN:PASSWORD');

$aContext = array(
    'http' => array(
        'proxy' => 'tcp://192.168.0.2:3128',
        'request_fulluri' => true,
        'header' => "Proxy-Authorization: Basic $auth",
    ),
);
$cxContext = stream_context_create($aContext);

$sFile = file_get_contents("http://www.google.com", False, $cxContext);

echo $sFile;

IP ve port, ve, bu sefer de adı ve ŞİFRE aynı şey ;-)

Şimdi, proxy Proxy-Authorization Bir Başlık, giriş ve şifrenizi içeren geçirmeden.

... Sayfa görüntülenemiyor, ve ;-)


Bu yardımcı olur umarım ! İyi eğlenceler !

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chaoticmoogle

    Chaoticmoogl

    13 ŞUBAT 2006
  • SVB International

    SVB Internat

    29 EKİM 2011
  • Tinkernut

    Tinkernut

    28 Aralık 2006