Uża IP ta’ proxy ma’ PHP cURL
Issettja proxy HTTP jew SOCKS fuq handle PHP cURL, żomm il-URL tas-sit separat u ddistingwi żbalji tat-trasport minn tweġibiet HTTP.
Żomm is-sit f’curl_init() u ssettja l-intermedjarju fuq dak il-handle. PHP jeħtieġ l-estensjoni cURL tiegħu; programm curl li jaħdem fit-terminal ma jipprovax li l-estensjoni hija disponibbli.
<?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;Ibdel l-IP u l-port tad-dokumentazzjoni bil-proxy HTTP tiegħek jew b’entrata mil-lista ta’ proxies HTTP. CURLOPT_NOPROXY ineħħi regoli ta’ bypass għal dan it-test; CURLOPT_RETURNTRANSFER jirritorna l-korp minflok jibagħtu lill-browser. Il-limitu tal-konnessjoni jillimita t-twaqqif u l-ħin massimu ġenerali jillimita l-operazzjoni cURL.
Għal punt tat-tmiem SOCKS5, ibdel l-għażliet tal-proxy HTTP qabel curl_exec():
curl_setopt($ch, CURLOPT_PROXY, '203.0.113.10:1080');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);CURLPROXY_SOCKS5_HOSTNAME jiddelega d-DNS tad-destinazzjoni lis-server SOCKS. Uża l-protokoll iddikjarat; il-port 1080 waħdu ma jidentifikahx. Ebda għażla tal-proxy ma teħtieġ li titfi l-verifika taċ-ċertifikat tas-sit.
Ittestja $body === false b’mod strett. Korp vojt jista’ jkun trasferiment b’suċċess, filwaqt li tunnell jista’ jfalli qabel ma teżisti xi tweġiba mis-sit. Bil-maqlub, korp mhux vojt jista’ jakkumpanja 403, 404 jew 429. Aqra CURLINFO_RESPONSE_CODE flimkien mar-riżultat tal-iżball ta’ cURL biex tiddeċiedi jekk it-talba lesta taqdix il-ħidma tiegħek.