| 
...
 | 
...
 | 
@@ -10,6 +10,7 @@ | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 use App\Http\Controllers\Controller;
 | 
| 
 | 
 | 
 use App\Models\SyncSubmitTask\SyncSubmitTask;
 | 
| 
 | 
 | 
 use App\Models\WebSetting\WebSetting;
 | 
| 
 | 
 | 
 use Illuminate\Http\Exceptions\HttpResponseException;
 | 
| 
 | 
 | 
 use Illuminate\Http\JsonResponse;
 | 
| 
 | 
 | 
 use Illuminate\Http\Request;
 | 
| 
...
 | 
...
 | 
@@ -27,6 +28,7 @@ class NoticeController extends Controller | 
| 
 | 
 | 
     const SUCCESS = 200;
 | 
| 
 | 
 | 
     const ERROR = 400;
 | 
| 
 | 
 | 
     const SERVERERROR = 500;
 | 
| 
 | 
 | 
     const FORBBIDEN = 401;
 | 
| 
 | 
 | 
     const  TYPEVISIT = "visit";
 | 
| 
 | 
 | 
     const TYPEINQUIRY = "inquiry";
 | 
| 
 | 
 | 
     const TRAFFICZERO = 0;
 | 
| 
...
 | 
...
 | 
@@ -251,6 +253,72 @@ public function websiteHtml(Request $request) | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * 文案
 | 
| 
 | 
 | 
      * @param Request $request
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function getRandInquiryText(Request $request){
 | 
| 
 | 
 | 
         //IP限流+验证参数
 | 
| 
 | 
 | 
         $this->limitIp($request);
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         try {
 | 
| 
 | 
 | 
             $requestUrl = "https://fob.ai.cc/api/get_inquiry_text";
 | 
| 
 | 
 | 
             $resStr = $this->httpGet($requestUrl);
 | 
| 
 | 
 | 
         } catch (\Exception $e) {
 | 
| 
 | 
 | 
             $resStr = $e->getMessage();
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
         $this->response("ok",self::SUCCESS,$resStr);
 | 
| 
 | 
 | 
         return;
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * @param $url
 | 
| 
 | 
 | 
      * @return bool|string
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function httpGet($url){
 | 
| 
 | 
 | 
         $ch1     = curl_init();
 | 
| 
 | 
 | 
         $timeout = 0;
 | 
| 
 | 
 | 
         curl_setopt($ch1, CURLOPT_URL, $url);
 | 
| 
 | 
 | 
         curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
 | 
| 
 | 
 | 
         curl_setopt($ch1, CURLOPT_ENCODING, '');
 | 
| 
 | 
 | 
         curl_setopt($ch1, CURLOPT_MAXREDIRS, 10);
 | 
| 
 | 
 | 
         curl_setopt($ch1, CURLOPT_HTTPHEADER, array());
 | 
| 
 | 
 | 
         curl_setopt($ch1, CURLOPT_CONNECTTIMEOUT, $timeout);
 | 
| 
 | 
 | 
         curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, FALSE);
 | 
| 
 | 
 | 
         curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, FALSE);
 | 
| 
 | 
 | 
         curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, true);
 | 
| 
 | 
 | 
         curl_setopt($ch1, CURLOPT_CUSTOMREQUEST, 'GET');
 | 
| 
 | 
 | 
         curl_setopt($ch1, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
 | 
| 
 | 
 | 
         $access_txt = curl_exec($ch1);
 | 
| 
 | 
 | 
         curl_close($ch1);
 | 
| 
 | 
 | 
         return $access_txt;
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * IP限流
 | 
| 
 | 
 | 
      * @param $request
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function limitIp($request)
 | 
| 
 | 
 | 
     {
 | 
| 
 | 
 | 
         //同一ip 2秒内超过6次 限制1分钟
 | 
| 
 | 
 | 
         $ip = $request->ip();
 | 
| 
 | 
 | 
         $ip_limit_key = 'ip_limit_' . $ip;
 | 
| 
 | 
 | 
         $num_limit_key = 'num_limit_' . $ip;
 | 
| 
 | 
 | 
         if (Cache::has($ip_limit_key)) {
 | 
| 
 | 
 | 
             $this->response("error", self::FORBBIDEN, "请求频繁,请稍后再试");
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
         if (Cache::has($num_limit_key)) {
 | 
| 
 | 
 | 
             $count = Cache::get($num_limit_key);
 | 
| 
 | 
 | 
             if ($count >= 6) {
 | 
| 
 | 
 | 
                 Cache::put($ip_limit_key, 1, 60);
 | 
| 
 | 
 | 
                 $this->response("error", self::FORBBIDEN, "请求频繁,请稍后再试");
 | 
| 
 | 
 | 
             }
 | 
| 
 | 
 | 
             Cache::increment($num_limit_key);
 | 
| 
 | 
 | 
         } else {
 | 
| 
 | 
 | 
             Cache::put($num_limit_key, 1, 2);
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * 网站html解压
 | 
| 
 | 
 | 
      * @param $zip_count
 | 
| 
 | 
 | 
      * @param $domain
 | 
...
 | 
...
 | 
 |