Erabili proxy IP bat PHP cURL-ekin
Ezarri HTTP edo SOCKS proxy bat PHP cURL heldulekuan, gorde webgunearen URLa bereizita eta bereizi garraio-akatsak HTTP erantzunetatik.
Mantendu webgunea curl_init() barruan eta ezarri bitartekaria helduleku horretan. PHPk cURL hedapena behar du; terminaleko curl exekutagarria ibiltzeak ez du hedapena erabilgarri dagoenik frogatzen.
<?php
$ch = curl_init('https://example.com/');
curl_setopt_array($ch, [
CURLOPT_PROXY => 'http://203.0.113.10:8080',
CURLOPT_PROXYTYPE => CURLPROXY_HTTP,
CURLOPT_NOPROXY => '',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 15,
]);
$body = curl_exec($ch);
if ($body === false) {
throw new RuntimeException(curl_error($ch), curl_errno($ch));
}
echo curl_getinfo($ch, CURLINFO_RESPONSE_CODE), PHP_EOL;
echo $body;Ordeztu dokumentazioko IPa eta ataka zure HTTP proxyarekin edo HTTP proxyen zerrendako sarrera batekin. CURLOPT_NOPROXY aukerak saiheste-arauak kentzen ditu proba honetarako; CURLOPT_RETURNTRANSFER aukerak gorputza itzultzen du nabigatzailera bidali ordez. Konexio-mugak ezarpena mugatzen du eta denbora-muga orokorrak cURL eragiketa.
SOCKS5 amaierako punturako, ordeztu HTTP proxyaren aukerak curl_exec() aurretik:
curl_setopt($ch, CURLOPT_PROXY, '203.0.113.10:1080');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);CURLPROXY_SOCKS5_HOSTNAME aukerak helmugaren DNSa SOCKS zerbitzariaren esku uzten du. Erabili adierazitako protokoloa; 1080 atakak bakarrik ezin du identifikatu. Proxy-aukera batek ere ez du webgunearen ziurtagiri-egiaztapena desgaitzea eskatzen.
Egiaztatu $body === false modu zorrotzean. Gorputz hutsa transferentzia arrakastatsua izan daiteke; tunelaren hutsegitea webgunearen inolako erantzunik egon aurretik gerta daiteke. Alderantziz, gorputz ez-hutsarekin batera 403, 404 edo 429 etor daiteke. Irakurri CURLINFO_RESPONSE_CODE cURL-en akats-emaitzarekin batera amaitutako eskaerak zure zeregina betetzen duen erabakitzeko.