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 त्रुटि परिणाम के साथ पढ़कर तय करें कि पूरा हुआ अनुरोध आपका काम करता है या नहीं।