Errorlog.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. /**
  4. * 由于钉釘现在接口限流了 没办法这边写一个接收器 作为接收需要监听信息的日志记录
  5. */
  6. class Errorlog extends Start_Controller {
  7. private $ip = ['127.0.0.1','47.105.156.18'];
  8. public function __construct(){
  9. parent::__construct();
  10. $this->load->_model("Model_logic_tools","logic_tools");
  11. $this->load->_model("Model_logic_ding","logic_ding");
  12. $this->load->_model("Model_zzerrlog","zzerrlog");
  13. }
  14. //定义方法的调用规则 获取URI第二段值
  15. public function _remap($arg,$arg_array)
  16. {
  17. $ip = $_SERVER['REMOTE_ADDR'];
  18. if(!in_array($ip,$this->ip)){
  19. exit("Unauthorized access");
  20. }
  21. if($arg == 'ding')//添加
  22. {
  23. $this->_ding();
  24. }
  25. else
  26. {
  27. die('No direct script access allowed');
  28. }
  29. }
  30. public function _ding(){
  31. //$ip = $_SERVER['REMOTE_ADDR']; 后期仅仅限制部署服务器的ip就好
  32. $param = json_decode(file_get_contents('php://input'), true);
  33. $key = $param['bs'];//核验秘钥
  34. $key = $this->logic_tools->toolsjiemi($key);
  35. $check_key = $this->logic_ding->getKey();
  36. if($check_key != $key){
  37. die('No direct script access allowed');
  38. }
  39. $content = $param['content'];
  40. if(!is_string( $content)){
  41. $content = json_encode($content);
  42. }
  43. //保存要监听的数据到日志表中
  44. $this->zzerrlog->insert([
  45. 'content'=>$content,
  46. 'created_time'=>date("Y-m-d H:i:s"),
  47. 'time'=>time(),
  48. ]);
  49. }
  50. }