ប្រើ IP ប្រូកស៊ីជាមួយ PHP cURL
កំណត់ប្រូកស៊ី HTTP ឬ SOCKS លើហេនឌល PHP cURL រក្សា URL គេហទំព័រដោយឡែក និងបែងចែកកំហុសដឹកជញ្ជូនពីការឆ្លើយតប HTTP។
រក្សាគេហទំព័រនៅក្នុង curl_init() ហើយកំណត់អន្តរការីលើហេនឌលនោះ។ PHP ត្រូវការផ្នែកបន្ថែម cURL របស់វា។ កម្មវិធី curl ដំណើរការក្នុងស្ថានីយមិនបញ្ជាក់ថាផ្នែកបន្ថែមមានទេ។
<?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;ជំនួស IP និងច្រកឯកសារដោយប្រូកស៊ី HTTP របស់អ្នក ឬធាតុពីបញ្ជីប្រូកស៊ី HTTP។ CURLOPT_NOPROXY លុបច្បាប់រំលងសម្រាប់ការសាកល្បងនេះ។ CURLOPT_RETURNTRANSFER ត្រឡប់តួចម្លើយ ជំនួសការផ្ញើទៅកម្មវិធីរុករក។ កម្រិតពេលតភ្ជាប់កំណត់ការបង្កើត ហើយកម្រិតពេលសរុបកំណត់ប្រតិបត្តិការ cURL។
សម្រាប់ចំណុចចុង SOCKS5 ជំនួសជម្រើសប្រូកស៊ី HTTP មុន curl_exec()៖
curl_setopt($ch, CURLOPT_PROXY, '203.0.113.10:1080');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);CURLPROXY_SOCKS5_HOSTNAME ប្រគល់ការដោះស្រាយ DNS គោលដៅទៅម៉ាស៊ីនមេ SOCKS។ ប្រើពិធីការដែលបានបញ្ជាក់។ ច្រក 1080 តែឯងមិនអាចកំណត់ពិធីការទេ។ ជម្រើសប្រូកស៊ីទាំងពីរមិនតម្រូវឱ្យបិទការផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រគេហទំព័រទេ។
ពិនិត្យ $body === false ដោយប្រៀបធៀបយ៉ាងតឹងរឹង។ តួចម្លើយទទេអាចជាការផ្ទេរជោគជ័យ ខណៈផ្លូវរូងអាចបរាជ័យមុនពេលមានការឆ្លើយតបពីគេហទំព័រ។ ផ្ទុយទៅវិញ តួចម្លើយមិនទទេអាចមកជាមួយ 403, 404 ឬ 429។ អាន CURLINFO_RESPONSE_CODE ជាមួយលទ្ធផលកំហុស cURL ដើម្បីសម្រេចថាសំណើដែលបានបញ្ចប់បំពេញការងាររបស់អ្នកឬអត់។