2017-01-27 1 views
-5

맞춤 API 페이지가 있습니다. IP 주소로 요청 수를 제한하려면 어떻게합니까?PHP - API의 속도를 제한하는 방법은 무엇입니까?

PHP에서 몇 가지 예가 필요합니다. 저는이 경험이별로 없습니다.

저는 apache2 서버를 실행하고 있습니다.

+0

글쎄, 이런 종류의 질문에는 당신이 끊임없는 연구와 최선을 다하고 있음을 증명할 수있는 어떤 종류의 코드가 포함되어야합니다. – manix

+1

IP, 요청 횟수 및 시간/날짜를 기록하십시오 ...? 특정 IP의 로그를 확인하고 매일, 매주, 매월 등 구성된 할당량과 비교하십시오.이 구현은 사소한 것에서부터 정교한 것까지 다양 할 수 있습니다. 당신은 무엇입니까? –

+0

기본 사항부터 시작하십시오. IP를받는 방법을 알고 있습니까? 데이터베이스에 저장하는 방법을 알고 있습니까? –

답변

0

API를 호출 한 사람의 IP를 가져 와서 IP와 제출 시간을 삽입하여 데이터베이스에 업로드 할 수 있습니다. 그런 다음 API 페이지 상단에서 방문자의 IP (cURL과 함께 작동하는지 확실하지 않지만 $ _SERVER [ 'remote_addr']를 사용할 수 있는지 확인)가 있는지 확인하고 데이터베이스에서 전송 시간과 같은 것이 전달되는지 확인하십시오. 이 경우 레코드를 삭제할 수 있습니다. 그렇지 않은 경우 방문자가 API 호출을 작성하고 IP를 데이터베이스에 삽입하십시오.

<?php 
$conn = new mysqli(host,user,password,database); 
$sql = "SELECT * FROM ip"; 
$result = $conn->query($sql); 
while($row = $result->fetch_assoc()) { 
    if($row['ip'] == VISITOR'S IP) { 
     --GET THE TIME OF THE IP SUBMISSION-- 
     if($time > 1hour) { 
      $sql = "DELETE FROM ip WHERE ip="$row['ip']; 
      --LET API WORK-- 
     } 
    } 
} 
$sql = "INSERT INTO ip (ip) VALUES (--VISITOR'S IP--)"; 
$result = $conn->query($sql); 
if(!$result) { 
    echo "SQL Error : ".$sql."<br> Error : ".$conn->error; 
} 
else { 
    $conn->close(); 
} 
?> 

이 정보가 도움이되기를 바랍니다. 건배!

관련 문제