2016-04-11 8 views
0

Ich brauche etwas Hilfe. Beim Erstellen eines einfachen Proxy-Servers mit dieser Curl-Funktion.cURL: Proxy-Server bekommen Zielbild

$ch = curl_init($IP); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: $HOSTNAME')); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
echo curl_exec($ch); 

kann es auf den anderen Server umleiten, aber es ändert die Links, wie ein Bild zu tarnen, welche Funktion soll ich hinzufügen? Danke.

+0

try Folge Standort –

+0

@ChetanAmeta es noch nicht – rkevx21

Antwort

1

Ich denke, was Sie sagen wollen ist, wenn der letzte Link einen IMG hat, dann ändert es nicht die URL innerhalb "Src" -Attribut. Das ist bei Curl nicht möglich. Was Sie dafür tun müssen, ist HTML zu analysieren und die Links manuell zu ändern, so dass sie von Ihrem Proxy-Server geleitet werden.

Auch zum Erstellen eines Proxyservers verwenden Sie keinen Host. Sie sollten den Inhalt mit Curl holen und ausdrucken. Was Sie tun, eine Umleitung ist und kein Proxy

bearbeiten

Beispielcode für den Proxy-

<?php 
    $host = "1.1.1.1"; //This is the host 
    $url = $host.$_SERVER['REQUEST_URI']; 
    echo file_get_contents($url); 
    var_dump($http_response_header); //For debugging 
?> 

Da Sie nur HTTP-Anfrage machen i file_get_contents denken ist besser geeignet Funktion. Auch der var_dump gibt Ihnen Antwortheader von der "1.1.1.1" IP. Jetzt eine kleine Notiz hier. Sehen Sie sich den Content-Typ an. Dies ist wichtig für Bilder. Weil der Browser den Inhaltstyp der Antwort kennen muss. Also, was Sie tun müssen, ist die Analyse der http_response_headers und dann auf Content-Typ und fügen Header in Ihrer Antwort mit header() Funktion entsprechend.

Hoffnung, dies hilft Ihnen besser

+0

arbeiten, ich habe diese Zielstelle test1.com mit IP 1.1.1.1, ich auf den Inhalt zugreifen kann meine Proxy-Skript Domäne mit test2.com aber es hat nicht die Bilder, Probe. test1.com/img/1.jpg gibt es das Bild, aber in test2.com/img/1.jpg gibt es ein Not Found. – rkevx21

+0

@ rkevx21 Sie haben dann keinen richtigen Proxy. Sie müssen sicherstellen, dass ALLE Proxy-Test1 anfordert. – apokryfos

+0

Okay, lassen Sie mich ein Beispielskript für Sie in meiner Antwort hinzufügen. :) – georoot

Verwandte Themen