You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.8 KiB

7 years ago
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. require APPPATH . '/libraries/REST_Controller.php';
  4. /**************************************************************
  5. * Tools API
  6. *************************************************************/
  7. class Tools extends REST_Controller {
  8. function __construct()
  9. {
  10. parent::__construct();
  11. if( !$this->input->is_ajax_request() ) $this->response(["result"=>FALSE,"message"=>langs('공통/msg/invalid_access')], 400);
  12. }
  13. /**
  14. * 통계 DB 최적화
  15. */
  16. function optimize_statics_get()
  17. {
  18. // 필요없어 보이는 데이타 정리
  19. $this->db->where('sta_ip', '0');
  20. $this->db->or_where('sta_ip', '2130706433');
  21. $this->db->or_where('sta_browser', '');
  22. $this->db->or_where('sta_platform', 'Unknown Platform');
  23. $this->db->delete('statics');
  24. // 국가 코드가 없는것들은 입히기
  25. $this->load->model('statics_model');
  26. $this->statics_model->ip_info_update();
  27. $this->response(array("result"=>TRUE, "message"=>"통계 테이블 최적화가 완료되었습니다."));
  28. }
  29. /**
  30. * IP 위치 조회
  31. */
  32. function ip_info_post()
  33. {
  34. $ip = $this->post('ip', TRUE);
  35. if( $info = get_ip_info($ip) )
  36. {
  37. $this->db->where('INET_NTOA(sta_ip)', trim($ip) );
  38. $this->db->set('sta_country', $info['country'] );
  39. $this->db->set('sta_country_code', $info['countryCode']);
  40. $this->db->set('sta_addr', $info['addr']);
  41. $this->db->set('sta_org', $info['org']);
  42. $this->db->update('statics');
  43. $this->response(array('status'=>TRUE,"result"=>$info), 200);
  44. }
  45. else {
  46. $this->response(array('status'=>FALSE, "result"=>"Can Not load Ip info : ". $ip), 400);
  47. }
  48. }
  49. }