اطلاعیه

Collapse
No announcement yet.

سوال در مورد تنظیمات پیشرفته cURL

Collapse
X
 
  • Filter
  • زمان
  • Show
Clear All
new posts

  • سوال در مورد تنظیمات پیشرفته cURL

    سلام
    برای یک ربات میخوام با استفاده از curl یک درخواست رو برای یک آدرس بفرستم اما نمی خوام منتظر جواب بمونه
    یعنی همین که درخواست به سرور هدف رسید برام بسه و نمی خوام منتظر جواب سرور بشم
    راه یا پیشنهاد یا هر نکته رو لازم دارم
    (نکته:چون به همراه در خواست با متد post دارم یک فایل رو میفرستم مجبورم از curl استفاده کنم)

  • #2
    اینو اضافه کن به کدت:
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    Comment


    • #3
      این باعث میشه که خروجی رو به از این طریق بشه گرفت
      $response = curl_exec($ch);
      اگرم false کنم باعث میشه نتیجه اوتوماتیک echo بشه
      با این نشده کارم

      Comment


      • #4
        من دنبالش بودم ولی نتونستم
        آخر رفتم سراغ exec(wget http://site.com/index.php?id=11111)
        البته اینم تست کن شاید کار کرد:
        curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'do_nothing');
        Last edited by bersam; 02-18-2014, 06:58 AM.
        بنمای رخ که خلقی ، واله شوند و حیران

        Comment


        • #5
          fsockopen

          Comment


          • #6
            نوشته اصلی توسط bersam نمایش پست ها
            من دنبالش بودم ولی نتونستم
            آخر رفتم سراغ exec(wget http://site.com/index.php?id=11111)
            البته اینم تست کن شاید کار کرد:
            curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'do_nothing');
            ممنون ولی کار نکرد
            چون مجبورم یک فایل رو با درخواست بفرستم نمی تونم از wget استفاده کنم

            Comment


            • #7
              نوشته اصلی توسط NE0 نمایش پست ها
              تاحالا با سوکت تو php کد ننوشتم ببینیم خدا چی می خواد آخرش.اگر کد آماده ایی که با سوکت کار کنه و بشه از متد پست هم یک فایل رو ارسال کنه پیدا کردید خبر بدید

              Comment


              • #8
                نوشته اصلی توسط NE0 نمایش پست ها
                تاحالا با سوکت تو php کد ننوشتم ببینیم خدا چی می خواد آخرش.اگر کد آماده ایی که با سوکت کار کنه و بشه از متد پست هم یک فایل رو ارسال کنه پیدا کردید خبر بدید

                Comment


                • #9
                  کد PHP:
                  function http_send($host$path$content)
                  {
                      
                  $payload  "--000000\r\n";
                      
                  $payload .= "Content-Disposition: form-data; name=\"Filedata\"; filename=\"file.ext\"\r\n\r\n";
                      
                  $payload .= "$content\r\n";
                      
                  $payload .= "--000000--\r\n";
                      
                  $packet  "POST $path HTTP/1.0\r\n";
                      
                  $packet .= "Host: {$host}\r\n";
                      
                  $packet .= "Content-Length: ".strlen($payload)."\r\n";
                      
                  $packet .= "Content-Type: multipart/form-data; boundary=000000\r\n";
                      
                  $packet .= "Connection: close\r\n\r\n{$payload}";
                      if (!(
                  $sock fsockopen($host80))) die( "\n[-] No response from {$host}:80\n");
                      
                  fputs($sock$packet);

                  اگر نتيجه رو هم خواستيد ميتونيد ازين استفاده کنيد

                  کد PHP:
                  return stream_get_contents($sock); 
                  Last edited by NE0; 02-19-2014, 09:50 AM.

                  Comment


                  • #10
                    ممنون اما تو این کد هیچ جاش $packet یا $payload رو ارسال نمی کنه که

                    Comment


                    • #11
                      ببخشید بد cut کردم این خط جا موند
                      کد PHP:
                          fputs($sock$packet); 

                      Comment


                      • #12
                        راستش خیلی تغییرات توش دادم و کلا سعی کردم بهینه تر بشه اما تو بهترین حالتش 30 ثانیه از curl کند تر بود البته هیچ جور هم نتونستم فایلی رو ارسال کنم باهاش کدش رو میزارم شاید بدرد کسه دیگه ایی بخوره

                        کد PHP:

                        function http_send($host$path$content)
                        {
                            
                        $addr gethostbyname($host);
                            
                            
                        $client stream_socket_client("tcp://$addr:80"$errno$errorMessage);
                            
                            if (
                        $client === false) {
                                throw new 
                        UnexpectedValueException("Failed to connect: $errorMessage");
                            }
                            
                                
                        $payload  "--000000\r\n";
                                
                        $payload .= "Content-Disposition: form-data; name=\"Filedata\"; filename=\"filename.txt\"\r\n\r\n";
                                
                        $payload .= "$content\r\n";
                                
                        $payload .= "--000000\r\n";
                                
                        $packet  "POST $path HTTP/1.1\r\n";
                                
                        $packet .= "Host: $host\r\n";
                                
                        $packet .= "Content-Type: multipart/form-data; boundary=--000000\r\n";
                                
                        $packet .= "Content-Length: ".strlen($payload)."\r\n";
                                
                        $packet .= "Connection: close\r\n\r\n{$payload}";
                                
                            
                            
                        fwrite($client,$packet);
                            
                        //echo stream_get_contents($client);
                            
                        fclose($client);


                        Comment


                        • #13
                          از آموزش این لینک هم تو کد بالا استفاده کردم
                          http://www.christophh.net/2012/07/24...et-programming

                          Comment

                          Working...
                          X