ਇੱਕੋ cURL ਟ੍ਰਾਂਸਫਰ ਵਿੱਚ ਸਥਾਨਕ ਇੰਟਰਫੇਸ ਅਤੇ ਪ੍ਰੌਕਸੀ ਚੁਣੋ
ਸਥਾਨਕ ਸਰੋਤ ਲਈ CURLOPT_INTERFACE ਅਤੇ ਵਿਚੋਲੇ ਲਈ CURLOPT_PROXY ਵਰਤੋ, OS ਰਾਊਟਿੰਗ ਅਤੇ NAT ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਦੇ ਹੋਏ।
ਕਈ ਸਥਾਨਕ ਪਤੇ ਵਾਲੀ ਮਸ਼ੀਨ ਨੂੰ ਫਾਰਵਰਡ ਪ੍ਰੌਕਸੀ ਨਾਲ ਆਪਣੇ ਕਨੈਕਸ਼ਨ ਲਈ ਇਹਨਾਂ ਵਿੱਚੋਂ ਇੱਕ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ। cURL ਦੋਵੇਂ ਚੋਣਾਂ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਕਰ ਸਕਦਾ ਹੈ:
curl_setopt_array($handle, [
CURLOPT_URL => 'https://example.com/',
CURLOPT_INTERFACE => '192.0.2.20',
CURLOPT_PROXY => 'http://proxy.example:8080',
]);
ਇਹ ਮੌਜੂਦਾ cURL handle ਲਈ ਇੱਕ ਉਦਾਹਰਨ ਕਨਫਿਗਰੇਸ਼ਨ ਹੈ। 192.0.2.20 ਨੂੰ ਉਸ ਸਰੋਤ ਪਤੇ ਨਾਲ ਬਦਲੋ ਜੋ PHP ਚਲਾ ਰਹੀ ਮਸ਼ੀਨ 'ਤੇ ਅਸਲ ਵਿੱਚ ਉਪਲਬਧ ਹੈ। ਪ੍ਰੌਕਸੀ ਖਾਤੇ ਤੋਂ ਬਿਨਾਂ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ ਬੇਨਤੀ ਲਈ, HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਪ੍ਰੌਕਸੀ ਮੁੱਲ ਲਈ ਦੂਰਸਥ ਸਰੋਤਾ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦੀ ਹੈ।
CURLOPT_INTERFACE ਬਾਹਰ ਜਾਣ ਵਾਲੇ ਕਨੈਕਸ਼ਨ ਦਾ ਸਥਾਨਕ ਪਾਸਾ ਚੁਣਦਾ ਹੈ। CURLOPT_PROXY ਉਸ ਵਿਚੋਲੇ ਨੂੰ ਚੁਣਦਾ ਹੈ ਜੋ ਬੇਨਤੀ ਨੂੰ ਅੱਗੇ ਲੈ ਜਾਂਦਾ ਹੈ। ਸਥਾਨਕ ਸਰੋਤ ਚੁਣਨਾ ਉਸ ਮਸ਼ੀਨ ਨੂੰ ਦੂਰਸਥ ਪ੍ਰੌਕਸੀ ਨਹੀਂ ਬਣਾਉਂਦਾ ਅਤੇ ਨਾ ਹੀ ਇਸਨੂੰ ਮਨਮਾਨੀ ਜਨਤਕ IP ਦਿੰਦਾ ਹੈ।
ਇਸ ਰਸਤੇ 'ਤੇ, ਸਥਾਨਕ ਚੋਣ ਪ੍ਰੌਕਸੀ ਵੱਲ ਦੇ ਕਨੈਕਸ਼ਨ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦੀ ਹੈ। ਵੈੱਬਸਾਈਟ ਆਮ ਤੌਰ 'ਤੇ ਪ੍ਰੌਕਸੀ ਦਾ ਅਗਲਾ ਸਰੋਤ ਪਤਾ ਵੇਖਦੀ ਹੈ। ਕਿਸੇ ਵੀ ਜੋੜੀ ਵਿਚਕਾਰ NAT ਹਰ ਪ੍ਰਾਪਤਕਰਤਾ ਵੱਲੋਂ ਵੇਖੇ ਜਾਣ ਵਾਲੇ ਪਤੇ ਦਾ ਹੋਰ ਅਨੁਵਾਦ ਕਰ ਸਕਦਾ ਹੈ।
ਜੇ ਇੰਟਰਫੇਸ ਚੋਣ ਛੱਡ ਦਿੱਤੀ ਜਾਵੇ, ਤਾਂ libcurl TCP ਸਟੈਕ ਨੂੰ ਢੁੱਕਵਾਂ ਸਰੋਤ ਚੁਣਨ ਦਿੰਦਾ ਹੈ। ਉਹ ਚੋਣ ਮਸ਼ੀਨ ਦੀ ਨੈੱਟਵਰਕਿੰਗ ਕਨਫਿਗਰੇਸ਼ਨ ਦੀ ਪਾਲਣਾ ਕਰਦੀ ਹੈ; ਇਹ ਸਰਵਵਿਆਪੀ ਨਿਯਮ ਨਹੀਂ ਹੈ ਕਿ ਕਨਫਿਗਰੇਸ਼ਨ ਫਾਈਲ ਵਿੱਚ ਪਹਿਲਾ ਪਤਾ ਜਿੱਤਦਾ ਹੈ।
libcurl ਸਮਰਥਿਤ ਪਲੇਟਫਾਰਮਾਂ 'ਤੇ ਇੰਟਰਫੇਸ ਨਾਮ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, ਪਰ ਇਸ ਵਿਕਲਪ ਲਈ Windows ਇੰਟਰਫੇਸ ਨਾਮ ਦੀ ਚੋਣ ਨੂੰ ਇਸਦਾ ਦਸਤਾਵੇਜ਼ ਬਾਹਰ ਰੱਖਦਾ ਹੈ। hostname ਵਰਤਣਾ ਬਲਾਕ ਕਰਨ ਵਾਲੀ ਖੋਜ ਵੀ ਸ਼ੁਰੂ ਕਰ ਸਕਦਾ ਹੈ। ਜੇ ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਇਰਾਦਾ ਇਹੀ ਚੋਣ ਹੈ ਤਾਂ ਜਾਣਿਆ-ਪਛਾਣਿਆ ਸਥਾਨਕ ਪਤਾ ਵਧੇਰੇ ਸਪਸ਼ਟ ਇਨਪੁਟ ਹੈ।