Mailinglisten-Archive |
Aloha, > Von: Matthias Gröschl[SMTP:groeschl_(at)_freakmail.de] > > ich möchte von einem Firmennetz aus dem Internet HTML-Seiten mit > fopen öffnen und lokal sichern. > Das Internet kann nur über einen Proxy mit Authentifizierung erreicht > werden. > > Kann ich PHP dazu bringen, sich an dem Proxy zu authentifizieren oder ist > es > möglich irgendwie über SOCKS zu gehen?? > man lese das Onlinemanual zu fopen und finde bei den Usernotes: http://www.php.net/manual/en/function.fopen.php PHP3 and fopen via proxy- here is the solution: .... $myfiles = "http://www.xyz.com/cgi-bin/plz_suche/search_or.cgi?or_plz=$PLZ&or_ort=".raw urlencode($stadt <http://www.xyz.com/cgi-bin/plz_suche/search_or.cgi?or_plz=$PLZ&or_ort=>); $datei = fsockopen("proxy.wdf.sap-ag.de", 8080, &$errno, &$errstr); if( !$datei ) { echo "proxy not available !"; fclose($resultfile); exit(); } else { fputs($datei,"GET $myfiles/ HTTP/1.0\n\n"); while (!feof($datei)) { $zeile = fgets($datei,1000); } } Best regards, Wilfried Ehrensperger Tja, da bleibt dann noch das Problem mit der Authentifizierung. Folgendes habe ich in Perl gemacht, sollte sich aber auch auf PHP übertragen lassen: (Quelle: Perl-Modul http://search.cpan.org/doc/RWAHBY/Net-HTTPTunnel-0.3/HTTPTunnel.pm ) # the CONNECT method itself $connectmsg = 'CONNECT ' . $args{'remote-host'} . ':' . $args{'remote-port'} . ' HTTP/' . $args{'http-ver'} . "\015\012"; # if we're not 1.0, presumably we're >1.0, in which case we need to send # the Host: header. It doesn't really make sense to use a different version # unless the proxy requires it for some reason---once the connection is made, # there's no difference at all if ($args{'http-ver'} ne '1.0') { $connectmsg .= 'Host: ' . $args{'proxy-host'} . ':' . $args{'proxy-port'} . "\015\012"; } # if we're going to do proxy authentication, we don't even need to wait for the # 407---just send them the first time if ($args{'proxy-user'} && $args{'proxy-pass'}) { $upstr = $args{'proxy-user'} . ':' . $args{'proxy-pass'}; $passstr = MIME::Base64::encode($upstr, ''); $connectmsg .= 'Proxy-Authorization: Basic ' . $passstr . "\015\012"; } Das sollte sich passend kombinieren lassen.... Grüße, Mathias
php::bar PHP Wiki - Listenarchive