Përdorni një IP proxy me PHP cURL
Vendosni një proxy HTTP ose SOCKS në një handle PHP cURL, mbani URL-në e faqes veçmas dhe dalloni gabimet e transportit nga përgjigjet HTTP.
Mbajeni faqen në curl_init() dhe vendosni ndërmjetësin në atë handle. PHP ka nevojë për shtesën cURL; një program curl që punon në terminal nuk provon se shtesa është e disponueshme.
<?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;Zëvendësoni IP-në dhe portën e dokumentimit me proxy-n tuaj HTTP ose një hyrje nga lista e proxy-ve HTTP. CURLOPT_NOPROXY pastron rregullat e anashkalimit për këtë test; CURLOPT_RETURNTRANSFER kthen trupin në vend që ta dërgojë në shfletues. Kufiri i lidhjes kufizon krijimin, ndërsa afati i përgjithshëm kufizon veprimin cURL.
Për një pikë fundore SOCKS5, zëvendësoni opsionet proxy HTTP përpara curl_exec():
curl_setopt($ch, CURLOPT_PROXY, '203.0.113.10:1080');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);CURLPROXY_SOCKS5_HOSTNAME ia delegon DNS-në e destinacionit serverit SOCKS. Përdorni protokollin e deklaruar; vetëm porta 1080 nuk e identifikon. Asnjëra zgjedhje nuk kërkon çaktivizimin e verifikimit të certifikatës së faqes.
Testoni $body === false në mënyrë strikte. Trupi bosh mund të jetë transferim i suksesshëm, ndërsa një tunel mund të dështojë përpara se të ketë ndonjë përgjigje nga faqja. Anasjelltas, trupi jo bosh mund të shoqërojë 403, 404 ose 429. Lexoni CURLINFO_RESPONSE_CODE bashkë me rezultatin e gabimit cURL për të vendosur nëse kërkesa e përfunduar shërben për detyrën tuaj.