PHP – utiliser cURL avec un proxy

Si vous souhaitez utiliser cURL en utilisant les services d’un proxy, il suffit tout simplement de renseigner CURLOPT_PROXY avec l’adresse ip du proxy dont vous disposez et d’indiquer donner la valeur 1 à l’option CURLOPT_HTTPPROXYTUNNEL, afin d’établir un tunnel entre vous et le serveur de destination. From Zero To SEO a mis en ligne sur son blog une fonction prête à l’emploi pour afficher le contenu du page en passant par un proxy. La voici:

<?php
function getPage($proxy, $proxyLoginPass= "", $url, $referer, $agent, $header, $timeout) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, $header);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    if($proxyLoginPass!= "")
    {
        curl_setopt($ch, CURLOPT_PROXYUSERPWD, '$proxyLoginPass');
    }
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_REFERER, $referer);
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
 
    $result['EXE'] = curl_exec($ch);
    $result['INF'] = curl_getinfo($ch);
    $result['ERR'] = curl_error($ch);
 
    curl_close($ch);
 
    return $result;
}
?>

Son utilisation:

$result = getPage(
    '113.160.50.51:80', // ip:port --- proxy situé au viet nam
    'http://www.mon-ip.com/',
    'http://www.google.com/',
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8',
    1,
    5);
 
if (empty($result['ERR'])) {
	echo $result['EXE'];
} else {
	echo $result['ERR'];
}

Le résultat de la page récupérée pour le site http://www.mon-ip.com/.

cURL proxy

L’IP affichée est sans surprise bien celle du proxy vietnamien.

Plus d’infos ici: http://php.net/manual/en/function.curl-setopt.php

Publié dans PHP

quand j’aurai le temps

  • les filtres wordpress
  • plugin wordpress et enregistrement de données
  • les wordpress custom post type
  • la bdd d'un blog wordpress
  • la balise more de wp
  • personnaliser une galerie wp
  • gérer les longueurs des extraits de wp
  • les animations css3
  • le memento symphony2
  • le squelette d'une page html5
  • liste sur plusieurs colonnes
  • le responsive design
  • exemple d'un jeu basique en html5
  • la réplication des bases de données
  • mettre en place une architecture en silo avec wp
  • parser un fichier xml (donc un rss) avec php5
  • mettre en place lightbox sans plugin
  • améliorer les performances de son wp
  • ajouter un bouton à l'éditeur de texte de wp
  • ...