Dyrk.org
Do You Really Know

Associer une ip à un nom de domaine avec curl

Publié le 5 novembre 2014 par #Ro0t

 

Ami du Jour Bonjour ^^

Je destine cet article à tous les développeurs PHP qui utilisent un peu le curl :)
Dans un de mes projets j’avais à faire une requêtes curl pour appeler un script qui demandait de s’authentifier …
Mais du coup j’essayais de m’authentifier sur ce fameux script qui me répondait :
FUCK YOU => Tiens voilà une erreur 403 rien que pour toi !

Du coup j’ai cherché longtemps pourquoi ça ne marchait pas …
Avant de constater que ma requête curl marchait en passant par un proxy et non en direct  …

Le problème venait de la résolution dns …
Il frappait sur 127.0.0.1, et en le faisant frapper sur l’ip publique, ça à résolu le problème !

J’ai dû donc, et c’est le sujet de l’article, résoudre manuellement l’ip …
Alors je vais vous expliquer la recette de cette réussite !

Voici un petit exemple :

 

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, « http://xx.xx.xx.xx/monscript.php »);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(‘Host: nomDeMonSite.fr’));
curl_setopt($curl, CURLOPT_RETURNTRANSFER , 1);
$resp = curl_exec($curl);
curl_close($curl);

 

Bon initialisation basique d’un objet curl :

 

$curl = curl_init();

 

Ensuite, vous verrez que je définis l’url en remplaçant le nom de domaine par l’ip

 

curl_setopt($curl, CURLOPT_URL, « http://xx.xx.xx.xx/monscript.php »);

 

xx.xx.xx.xx étant bien sur l’ip sur laquelle vous souhaitez pointer.

 

Et enfin ici j’indique ici le nom de domaine

 

curl_setopt($curl, CURLOPT_HTTPHEADER, array(‘Host: nomDeMonSite.fr’));

 

Bon après je vous décortique pas le reste, le but de cet article n’est pas de vous former à curl ^^

 

Ils existent d’autre manière de le faire, par exemple en modifiant le fichier host du système.