Open In App

How to use cURL via a proxy ?

This tutorial will show the way to use a proxy with PHP’s cURL functions. In this tutorial, we’ll send our HTTP request via a selected proxy IP address and port.

Why should you use a proxy?
There are various reasons why you would possibly want to use a proxy with cURL:



  1. To get around regional filters and country blocks.
  2. Using a proxy IP addresses allows you to mask or hide your own IP address.
  3. To debug network connection issues.

Using a proxy with PHP’s cURL functions: To authenticate with a proxy via cURL and send a HTTP GET request follow along code given below and read the instructions specified as comments.

Note: All the credentials and links used are random and used for demo purpose only. Please use your own proxy, credentials and URL.






<?php
  
// Initialize URL you that want to
// send a cURL proxy request to.
$desturl = 'http://example.net';
  
// The IP address of the proxy that
// you want to send your request
// through
$proxyipadd = '11.22.33.44';
  
// The port that the proxy is
// listening on
$proxyport = '1234';
  
// The username for authenticating
// with the proxy
$proxyuserid = 'testuser';
  
// The password for authenticating
// with the proxy
$proxypass = 'testpass';
  
// Initialize curl 
$ci = curl_init($url);
  
// Set curl attributes
curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ci, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ci, CURLOPT_HTTPPROXYTUNNEL , 1);
  
// Set the proxy IP
curl_setopt($ci, CURLOPT_PROXY, $proxyipadd);
  
// Set the port
curl_setopt($ci, CURLOPT_PROXYPORT, $proxyport);
  
// Set the username and password
curl_setopt($ci, CURLOPT_PROXYUSERPWD, 
            "$proxyuserid:$proxypass");
  
// Execute the request
$result = curl_exec($ci);
  
// Check if any errors
if(curl_errno($ci)){
    throw new Exception(curl_error($ci));
}
  
// Print the result.
echo $result;
?>

In the above code, we connected to a proxy that needs authentication before sending an easy GET request. If the proxy doesn’t require authentication, then you could omit the CURLOPT_PROXYUSERPWD line from your code.

Some errors you might encounter while using curl:


Article Tags :