ਵੈੱਬਸਾਈਟ 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 ਗਲਤੀ ਨਤੀਜੇ ਨਾਲ ਪੜ੍ਹੋ।

ਸੰਬੰਧਿਤ ਲੇਖ