2011-12-27 3 views
0

cURL을 통해 API에 연결하는 작은 스크립트를 작성했지만 스팸을 방지하기 위해받는 cURL 연결을 제한 할 수있는 방법을 알아야합니다.cURL 연결을 제한하는 방법

어떻게이 작업을 수행 할 수 있습니까?

<?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

작은 스크립트를 여기에 표시 할 수 있습니까 ?? –

+0

내 API에서 정보를 요청하는 코드로 편집합니다. 어쨌든 나는 이것으로 만든 연결을 제한 할 수 있습니까? – HarryBeasant

+0

클라이언트가 일부 자격 증명을 사용하여 권한을 부여하도록합니다. 또는 들어오는 요청을 추적하고 특정 임계 값 (예 : 시간당 10)을 초과 한 후 해당 IP의 요청을 차단합니다. – Pradeep

답변

1

당신은 사용할 수 있습니다 curl_set_opt(CURLOPT_MAXCONNECTS, 10); 연결하면 컬에 의해 만들어진을 제한. 또는 테이블을 만들고 연결을 요구하는 IP 레코드를 보관할 수 있습니다.

희망이 도움이됩니다.

+0

내가 붙여 넣은 스크립트가 요청자 측에 위치하기 때문에 사람들이 최대 연결 수를 변경할 수있게 해줄 것입니다. PHP API에 들어가서 시간당 최대 10 개를 연결하는 설정입니까? – HarryBeasant

+0

연결이 닫힐 때까지 분 또는 시간 동안 아닙니다. CURLOPT_CONNECTTIMEOUT은 연결을 시도하는 동안 기다리는 시간 (초)으로 사용될 수 있습니다. – AlphaMale

+0

최대 값을 1000과 같이 큰 숫자로 설정하면 어떤 단점이 있습니까? 그냥 메모리 사용입니까? 또한 이것은 캐시 크기를 올바르게 제한하고 있습니까? 또한 동시 연결 수를 제한합니까? – CMCDragonkai