Tumia IP ya proksi na PHP cURL
Weka proksi ya HTTP au SOCKS kwenye kishikio cha PHP cURL, tenga URL ya tovuti na tofautisha hitilafu za usafirishaji na majibu ya HTTP.
Acha tovuti katika curl_init() na weka mpatanishi kwenye kishikio hicho. PHP inahitaji kiendelezi chake cha cURL; programu ya curl inayofanya kazi kwenye terminal haithibitishi kiendelezi kinapatikana.
<?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;Badili IP na mlango wa nyaraka kwa proksi yako ya HTTP au ingizo kutoka orodha ya proksi za HTTP. CURLOPT_NOPROXY husafisha kanuni za kupita pembeni kwa jaribio hili; CURLOPT_RETURNTRANSFER hurudisha mwili wa jibu badala ya kuutuma kivinjarini. Kikomo cha kuunganisha kinaweka mpaka kwa uanzishaji na muda wa jumla unaweka mpaka kwa kazi ya cURL.
Kwa sehemu ya mwisho ya SOCKS5, badili chaguo za proksi ya HTTP kabla ya curl_exec():
curl_setopt($ch, CURLOPT_PROXY, '203.0.113.10:1080');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);CURLPROXY_SOCKS5_HOSTNAME hukabidhi DNS ya lengo kwa seva ya SOCKS. Tumia itifaki iliyotajwa; mlango 1080 peke yake hauitambui. Hakuna chaguo la proksi linalohitaji kuzima uthibitishaji wa cheti cha tovuti.
Jaribu $body === false kwa ulinganisho mkali. Mwili tupu unaweza kuwa uhamisho uliofaulu, huku handaki linaweza kushindwa kabla ya jibu lolote la tovuti kuwepo. Kinyume chake, mwili wenye maudhui unaweza kuja pamoja na 403, 404 au 429. Soma CURLINFO_RESPONSE_CODE pamoja na matokeo ya hitilafu ya cURL ili kuamua kama ombi lililokamilika linatimiza kazi yako.