2012-05-12 3 views
0

지금은 시장에서 무료로 제공되는 Android 앱을 개발했습니다. 앱은 기본적으로 HTTP GET을 사용하여 개인 서버의 일부 데이터를 쿼리합니다. 내 서버가 호스팅되어 있으므로 월간 전송량이 제한되어 있으므로 대역폭에 대한 걱정이별로 없습니다.android app의 사용 제한

내가 궁금한 점은 각 사용자가 요청한 요청 수를 20 가지 요청으로 제한하는 견고한 방법이 있습니까?

일부 배경의 경우 앱 인터페이스는 매우 간단합니다. HTTP GET 매개 변수를 캡처하는 두 개의 EditText 상자와 요청을 제출하는 Button. 결국 앱에 TextView을 채우는 cgi 스크립트에서 값을 반환합니다.

솔루션은 앱 끝 또는 서버 끝 중 하나 일 수 있습니다. 내가 가진 아이디어는 어떻게 든 파일에 이미 만들어진 요청 수를 쓰고 그곳에서 상태를 읽는 것입니다.

내가 원하는 것을 얻는 더 좋은 방법이 있습니까?

답변

1

그냥 제안 :

앱에서 :

각 장치에 대한 고유 ID를 (. this 질문 참조)를 생성하고 요청과 서버로 보낼 수 있습니다. 서버에서

는 :

저장 요청은 각 장치에서 어딘가에 계산하고 저장된 값을 기준으로 원하는 제한을 적용합니다.


서버 측 IP로 요청을 제한 할 수 있습니다. 이 접근법의 문제점은 공유 IP로 인터넷에 연결된 사용자를 제한한다는 것입니다 (예 : 액세스 포인트에 연결된 여러 장치 등).

+0

답변 해 주셔서 감사합니다. 제한이 서버 측에 어떻게 적용될 수 있는지 알고 싶습니까? –

+0

데이터베이스 테이블에 각 사용자 (DeviceID)에 대한 요청 수를 저장하고 cron 작업을 사용하여 매일 값을 재설정합니다. 그런 다음 각 요청에서 DeviceID를 확인하고 허용 된 요청 수가 초과되면 오류 응답을 보냅니다. – fardjad

+0

감사합니다! 약간 더 원시적 인 일을했습니다 - 고유 ID를 txt 파일에 추가하고 cron 작업을 사용하여 매일 비워 둡니다. 매번 사용자가 쿼리하면 txt 파일을 grep하고 wc -l을 실행하여 한계에 도달했는지 확인합니다. –