PHP cURL सह प्रॉक्सी IP वापरा
PHP cURL हँडलवर HTTP किंवा SOCKS प्रॉक्सी ठेवा, वेबसाइट 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च्या त्रुटी निकालासह वाचा.