Kan PHP cURL använda besökarens IP-adress?
Förklarar vilken maskin som öppnar en cURL-anslutning på serversidan och vad en proxy skulle behöva ändra för att byta den vägen.
En besökare klickar på en knapp. Din PHP-server anropar ett externt API. API:t ser serverns utgående anslutning, eller utgången från proxyn som konfigurerats för den anslutningen. Besökarens webbläsare hanterar en separat anslutning till din webbplats.
Att kopiera besökarens adress till en header kan inte flytta PHP-anslutningen till besökarens nätverk. Headers är data som skickas över en redan upprättad anslutning. En destination kan använda en betrodd vidarebefordrande header i sin egen applikationslogik, men det gör inte header-värdet till anslutningens källadress.
En proxy måste acceptera anslutningen
För att skicka PHP cURL genom en annan maskin måste den maskinen erbjuda en nåbar proxytjänst med tillstånd att bära begäran. PHP-processen måste kunna ansluta till den. En besökares vanliga webbläsarsession ger inte din server någon sådan allmän proxyändpunkt.
libcurl-proxyalternativet väljer den tjänst som cURL ansluter till. Det kan inte be en godtycklig webbläsare att skapa begäran för dess räkning.
En webbläsarbegäran är en annan design
För vissa API:er kan webbläsaren anropa destinationen direkt. Det placerar begäran på användarens nätverksväg, beroende på deras egen proxykonfiguration. Det kräver också ett API utformat för webbläsarklienter. Åtkomst mellan ursprung följer CORS, och autentiseringsuppgifter som skickas till webbläsarkod blir tillgängliga för den klienten.
Bestäm var begäran hör hemma innan du väljer ett proxyalternativ. Behåll serveruppgifterna på servern; använd en dokumenterad webbläsarintegration när tjänsten stöder en. Ingen av designerbjuder en pålitlig genväg för att låta en serverbegäran ärva en besökares nätverksidentitet.