2009-02-17 5 views
0

Je suis en train d'utiliser cURL avec PHP et son me donner cette erreur:cURL - Opération non autorisée erreur

« Impossible de se connecter à 208.77.188.166: Opération non autorisée »

Je m assez sûr est un problème de serveur - mais juste au cas où, voici mon code:

<?php 

$ch = curl_init(); 
$url ="http://www.example.com"; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$output = curl_exec($ch) or die(curl_error($ch)); 
echo $output; 

?> 

cURL est activé sur Apache, j'ai essayé modification des autorisations du fichier à 777.

Des idées?

Répondre

0

Vous devriez essayer d'utiliser une version de curl installée sur le serveur ou sur votre poste de travail (version ligne de commande) et essayer de répliquer l'erreur, vous devrez peut-être définir un en-tête referrer, mais tout dépend de le serveur que vous essayez de contacter.

0

Il peut s'agir d'un problème de proxy ou d'une sorte de problème d'authentification sur le serveur. Pouvez-vous accéder à cette URL à l'aide d'un navigateur Web standard?

1

Il est possible que vous deviez activer allow_url_fopen (reference) - vous pouvez le faire dans un fichier .htaccess s'il est sur apache.

Vous pouvez l'activer en mettant cela dans un fichier .htaccess:

php allow_url_fopen on 
1

Assurez-vous de définir toutes les options CURL requises:

CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_HEADER   => false, 
    CURLOPT_FOLLOWLOCATION => true, 
    CURLOPT_ENCODING  => "", 
    CURLOPT_USERAGENT  => "spider", 
    CURLOPT_AUTOREFERER => true, 
    CURLOPT_CONNECTTIMEOUT => 120, 
    CURLOPT_TIMEOUT  => 120, 
    CURLOPT_MAXREDIRS  => 10, 

Je vous suggère également l'écho des erreurs aussi en utilisant quelque chose comme ceci:

$hostconnect = curl_init($url); 
$errmsgcurl = curl_error($hostconnect); 
echo $errmsgcurl; 

Le code ci-dessus n'a pas été testé et il sert comme un exemple.

Vous pouvez également essayer votre code sur un serveur apache local de cette façon, vous pouvez savoir où le problème se pose facilement. De nombreux fournisseurs d'hébergement mutualisé interdisent les connexions sortantes.

1

Bluehost, par exemple, exige que vous achetiez une adresse IP statique avant d'autoriser les connexions sortantes. Ensuite, vous devez vous assurer que CURL sait quelle interface sortante utiliser.

+0

ce n'est pas vrai. J'ai un plan d'hébergement partagé avec bluehost, et il fonctionne parfaitement lorsque vous utilisez curl pour faire des connexions sortantes. Je dirige un site de fan de WoW Armory qui fait environ 20 000 connexions sortantes par jour. – Jayrox

1

L'erreur que vous recevez est susceptible de faire à un pare-feu bloquant toutes les connexions sortantes. De nombreux fournisseurs d'hébergement mutualisé bloquent les connexions sortantes du port 80 pour tenter d'arrêter les erreurs rampantes dans les scripts PHP qui permettent d'utiliser des objets distants comme vecteur d'attaque contre le serveur.

Veuillez contacter votre hébergeur, et si tel est le cas, vous devrez trouver un autre moyen de vous connecter à l'hôte distant ou de transférer des sociétés d'hébergement.