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 ದೋಷ ಫಲಿತಾಂಶದ ಜೊತೆ ಓದಿ.