Defnyddio IP dirprwy gyda PHP cURL
Gosodwch ddirprwy HTTP neu SOCKS ar handlen PHP cURL, cadwch URL y wefan ar wahân a gwahaniaethwch wallau cludo oddi wrth ymatebion HTTP.
Cadwch y wefan yn curl_init() a gosodwch y cyfryngwr ar yr handlen honno. Mae PHP angen ei estyniad cURL; nid yw rhaglen curl sy’n gweithio yn y derfynell yn profi bod yr estyniad ar gael.
<?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;Amnewidiwch yr IP a’r porth dogfennaeth gyda’ch dirprwy HTTP neu gofnod o’r rhestr dirprwyon HTTP. Mae CURLOPT_NOPROXY yn clirio rheolau osgoi ar gyfer y prawf hwn; mae CURLOPT_RETURNTRANSFER yn dychwelyd y corff yn hytrach na’i anfon at y porwr. Mae’r terfyn cysylltu yn cyfyngu ar sefydlu a’r terfyn amser cyffredinol yn cyfyngu ar weithrediad cURL.
Ar gyfer pwynt terfyn SOCKS5, amnewidiwch yr opsiynau dirprwy HTTP cyn curl_exec():
curl_setopt($ch, CURLOPT_PROXY, '203.0.113.10:1080');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);Mae CURLPROXY_SOCKS5_HOSTNAME yn dirprwyo DNS y gyrchfan i’r gweinydd SOCKS. Defnyddiwch y protocol a nodwyd; ni all porth 1080 yn unig ei adnabod. Nid yw’r naill ddewis dirprwy na’r llall yn gofyn am ddiffodd gwirio tystysgrif y wefan.
Profwch $body === false yn llym. Gall corff gwag fod yn drosglwyddiad llwyddiannus, tra gall twnnel fethu cyn bod unrhyw ymateb gwefan yn bodoli. I’r gwrthwyneb, gall corff nad yw’n wag ddod gyda 403, 404 neu 429. Darllenwch CURLINFO_RESPONSE_CODE ochr yn ochr â chanlyniad gwall cURL i benderfynu a yw’r cais gorffenedig yn cyflawni eich tasg.