2011-12-27 4 views
0

J'ai écrit un petit script pour me connecter via cURL à mon API, mais j'ai besoin de savoir comment je peux limiter les connexions cURL entrantes pour éviter le spam.Comment limiter les connexions cURL

Comment cela peut-il être fait?

<?php 

function shorten_url($urltoshorten) { 

$url = 'http://nn.pe/api.php?url='.$urltoshorten; 


$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $request); 
// what to post 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
$result = curl_exec($ch); 
curl_close($ch); 

return $result; 

} 

?> 
+0

pouvez-vous s'il vous plaît montrer ici votre petit script ?? –

+0

Modification effectuée avec le code qui demande les informations de mon API. De toute façon je peux limiter les connexions faites par ceci? – HarryBeasant

+0

Autorise les clients à autoriser l'utilisation de certaines informations d'identification. Ou gardez une trace des demandes entrantes, et bloquez les demandes de cette IP après qu'elle franchisse un certain seuil, disons 10 par heure. – Pradeep

Répondre

1

Vous pouvez utiliser: curl_set_opt(CURLOPT_MAXCONNECTS, 10); pour limiter les connexions que vous faites par boucle. Ou vous pouvez créer une table et conserver un enregistrement des adresses IP demandant des connexions.

Espérons que cela aide.

+0

Comme ce script que j'ai collé est situé du côté des demandeurs, il permettrait aux gens de changer les connexions max, est-ce que cURL que vous mettez là-bas peut être en mesure de aller dans l'API PHP et est ce paramètre max se connecte à 10, par heure, minute? – HarryBeasant

+0

Ce n'est pas pour min ou heures, c'est jusqu'à quand une connexion est fermée. CURLOPT_CONNECTTIMEOUT peut être utilisé comme le nombre de secondes à attendre en essayant de se connecter. – AlphaMale

+0

Quels sont les inconvénients possibles de définir le maximum pour être un grand nombre comme 1000? Est-ce juste de l'utilisation de la mémoire? Aussi, cela limite la taille du cache, n'est-ce pas? Cela limite-t-il également le nombre de connexions simultanées? – CMCDragonkai

Questions connexes