Discussion:
Comment masquer son adresse ip avec la librairie curl ?
(trop ancien pour répondre)
Jean-Francois Ortolo
2008-12-14 20:48:18 UTC
Permalink
Bonjour

Après un intense regard sur le PHP Manual, j'ai cru comprendre, que
pour "montrer" une adresse ip différente de l'adresse source réelle (
lors d'une connexion avec curl_init(), etc... ), il suffisait de faire
l'instruction suivante:

curl_setopt($ch, CURLOPT_INTERFACE, $adresse_ip);

ou bien:

curl_setopt($ch, CURLOPT_INTERFACE, $host);

Le $host est celui du site, c'est théoriquement l'adresse IpFailOver.

Même avec une adresse IpFailOver, çà ne marche pas.

Ceci évidemment, si le $host est censé pouvoir dialoguer avec le
serveur sur lequel se trouve le script php.

En fait, le script php se trouve sur un site, qui a une adresse ip en
entrée différente de l'adresse de son serveur, mais théoriquement, le
site peut dialoguer avec le serveur sans problème avec l'adresse ip du site.

Il s'agit du système des adresses IpFailOver de OVH.

Quand je déclenche mon script, avec tous les réglages de messages
d'erreur à on, je n'ai aucune erreur, mais il semble que la connexion ne
se fait pas.

Il devrait donc y avoir un message d'erreur, le script est programmé
pour tester @curl_errno($ch) , or il ne paraît pas être à true, donc il
ne devrait pas y avoir d'erreur. Et cependant, la connexion ne se fait
pas, que ce soit avec le host du site, ou l'adresse IpFailOver du site.

Merci de votre aide.

Bien à vous.

Amicalement.

Jean-François Ortolo
Jean-Francois Ortolo
2008-12-14 23:37:20 UTC
Permalink
Début de réponse...

La librairie cUrl n'était pas installée sur le serveur, les fonctions
n'existaient pas.

Comme je mettais un @ avant les fonctions, il n'y avait pas d'erreur,
le script s'arrêtait à la première fonction cUrl rencontrée.

Maintenant la librairie cUrl est installée.

Il y a une erreur: "could'nt connect to host" au bout du timeout,
mais il n'y a pas indiqué de timeout.

Voici le code:

$ch = @curl_init();
@curl_setopt($ch, CURLOPT_URL, $url);
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
@curl_setopt($ch, CURLOPT_HEADER, false);
@curl_setopt($ch, CURLOPT_ENCODING, "");
@curl_setopt($ch, CURLOPT_INTERFACE, $host);
@curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
@curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
@curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
@curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
@curl_setopt($ch, CURLOPT_TIMEOUT, 300);
unset($content);
$content = @curl_exec($ch);
if(@curl_errno($ch))
{
echo @curl_error($ch) . "<br>\n";
@curl_close($ch);
return(false);
}
else
@curl_close($ch);

// Après, je fait un split("[\n]", $content) pour bien
faire, puis je parcours l'array produite.


La variable $host contient le nom d'hôte du site qui contient
le script, donc cet host a l'adresse l'IpFailOver configurée dans la
carte réseau ( entre autre ).

A quoi vous fait penser ce "could'nt connect to host" ?

Y a-t-il une erreur dans mon code ?

Merci beaucoup de vos réponses.

Bien à vous.

Amicalement.

Jean-François Ortolo
Mickaël Wolff
2008-12-15 09:40:53 UTC
Permalink
Post by Jean-Francois Ortolo
Après un intense regard sur le PHP Manual, j'ai cru comprendre, que
pour "montrer" une adresse ip différente de l'adresse source réelle (
lors d'une connexion avec curl_init(), etc... ), il suffisait de faire
curl_setopt($ch, CURLOPT_INTERFACE, $adresse_ip);
Cette instruction permet de choisir l'interface que va écouté ton
script. Mais cette adresse IP doit être attribuée sur le serveur depuis
lequel tu tente de te connecter, ou que tu route correctement les
paquets depuis la passerelle réseau sur le serveur hébergeant le script.
Sinon, ton script ne peut pas recevoir le retour de connexion.

Il faudrait que tu nous en dise plus sur le but de ta manipulation.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Jean-Francois Ortolo
2008-12-15 16:28:36 UTC
Permalink
Post by Mickaël Wolff
Post by Jean-Francois Ortolo
Après un intense regard sur le PHP Manual, j'ai cru comprendre, que
pour "montrer" une adresse ip différente de l'adresse source réelle (
lors d'une connexion avec curl_init(), etc... ), il suffisait de faire
curl_setopt($ch, CURLOPT_INTERFACE, $adresse_ip);
Cette instruction permet de choisir l'interface que va écouté ton
script. Mais cette adresse IP doit être attribuée sur le serveur depuis
lequel tu tente de te connecter, ou que tu route correctement les
paquets depuis la passerelle réseau sur le serveur hébergeant le script.
Sinon, ton script ne peut pas recevoir le retour de connexion.
Il faudrait que tu nous en dise plus sur le but de ta manipulation.
Bonjour Monsieur

J'ai testé en me connectant avec ce programme sur la page d'accueil
de mon site, çà marche, et d'après mes logs l'adresse ip source est bien
l'adresse IpFailOver.

Il semblerait, que le site sur lequel je souhaite me connecter, ait
blacklisté cette adresse, et aussi celle réelle du serveur sur lequel se
trouve le script.

Il est fort probable, que ce site ait blacklisté les hôtes
alphbétiques pour faire bonne mesure, auquel cas il n'y aura pas grand
chose à faire...

Sinon, il reste les proxies externes, mais ils nécessitent une
authentification par login/password, et puis il est probable que le site
ait blacklisté aussi le maximum de proxies connus, alors...

Bien à vous.

Amicalement.

Jean-François Ortolo
Jean-Francois Ortolo
2008-12-16 22:47:36 UTC
Permalink
Bonjour

Mon problème est résolu théoriquement.

Bien à vous.

Amicalement.

Jean-François Ortolo

Loading...