„Proxy holen“ kann in einer PHP-cURL-Anwendung drei verschiedene Dinge bedeuten. Entscheiden Sie, welche Beobachtung Sie benötigen, bevor Sie eine weitere Anfrage hinzufügen.

FrageWo nachsehen
Welchen Endpunkt hat die Anwendung konfiguriert?Die Konfiguration, die dem Handle übergeben wurde
Wurde für diese Übertragung ein Proxy verwendet?Übertragungsinformationen, sofern unterstützt
Welche öffentliche Adresse hat die Website gesehen?Eine Beobachtung an diesem Ziel

Behalten Sie den gewählten Endpunkt neben dem Handle oder dem Anfrageobjekt. curl_getinfo ist eine Schnittstelle für Übertragungsinformationen, kein allgemeiner Getter für jeden zuvor zugewiesenen CURLOPT-Wert. Die Anwendungskonfiguration zu behalten ist einfacher, als curl_setopt-Aufrufe abzufangen.

Die abgeschlossene Übertragung prüfen

Nach der Übertragung ist der verbundene Peer über CURLINFO_PRIMARY_IP verfügbar. Geht die erste Verbindung an einen Proxy, kann dieser Peer die Adresse des Proxys statt der Adresse der Website sein.

$peer = curl_getinfo($ch, CURLINFO_PRIMARY_IP);
$usedProxy = defined('CURLINFO_USED_PROXY')
    ? curl_getinfo($ch, constant('CURLINFO_USED_PROXY'))
    : null;

CURLINFO_USED_PROXY wurde in 8.7.0 zu libcurl hinzugefügt und wird von kompatiblen PHP-Builds bereitgestellt. Sein Ergebnis meldet die Proxynutzung, nicht die vollständige URL des gewählten Proxys. Ist die Konstante nicht verfügbar, bedeutet null oben, dass die Beobachtung nicht verfügbar ist, nicht dass die Anfrage direkt ging.

Lesen Sie diese Werte, solange das Handle noch den betreffenden Vorgang beschreibt. Eine fehlgeschlagene Verbindung liefert möglicherweise keine brauchbare Peer-Adresse, und ein ausdrücklicher Proxy kann durch eine zutreffende Ausnahme dennoch umgangen werden.

Ein IP-Prüf-Endpunkt beantwortet die dritte Frage. Seine Antwort kann einen Ausgang hinter dem Proxy beschreiben, während der konfigurierte Hostname zu einem anderen Eingang auflöst. Keine der beiden Adressen sollte in den Einstellungen der Anwendung durch die andere ersetzt werden.

Ähnliche Artikel