рдкреНрд░рджрд░реНрд╢рди рддреБрд▓рдирд╛: рдХрд░реНрд▓, php рдХрд░реНрд▓, php рд╕реЙрдХреЗрдЯ, рдкрд╛рдпрдерди pycurl

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдореЙрдбреНрдпреВрд▓ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЙрд╕реЗ GET рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд░рд╣рд╛ рд╣реИред
рдореИрдВрдиреЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдХрд┐ рдкреГрд╖реНрда рдХреЛ рдХреИрд╕реЗ рддреЗрдЬрд╝реА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рддрдХрдиреАрдХреЛрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ)ред

рдкрд╣рд▓реЗ 3 рдкрд░реАрдХреНрд╖рдг: рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдиреЗ рдПрдХ рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 50 рдкреНрд░рд╢реНрди рдХрд┐рдПред

рдЫрд╡рд┐

рдЫрд╡рд┐
рдореБрдЭреЗ рд╕рдордЭрд╛рдПрдВ рдХрд┐ рдХрд░реНрд▓ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдХрд░реНрд▓ рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рд╣реИред рд╕рднреА рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдП рдЧрдП рдереЗред
рдПрдХ рдкрд╛рдВрдЪрд╡рд╛рдВ рдкрд░реАрдХреНрд╖рдг рднреА рдерд╛ - рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ php рд╕реЗ рдХрд░реНрд▓ рдХреЙрд▓рд┐рдВрдЧ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрд╕ рдореВрд░реНрдЦрддрд╛ рдХреЛ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ред

рдпрджрд┐ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдФрд╕рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ:
рдЫрд╡рд┐

рд╕реНрдерд╛рдиреЛрдВ:
  1. php рд╕реЙрдХреЗрдЯ
  2. рдХрд░реНрд▓
  3. рдЕрдЬрдЧрд░ pycurl
  4. php рдХрд░реНрд▓

рдпрджрд┐ рдЖрдк рдХрдо рдореВрд▓реНрдп рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ:
рдЫрд╡рд┐

  1. php рд╕реЙрдХреЗрдЯ
  2. php рдХрд░реНрд▓
  3. рдЕрдЬрдЧрд░ pycurl
  4. рдХрд░реНрд▓

рдЬреЗрдкреА рдХреЗ рдмрд┐рдирд╛ рдХрдВрд╕реЛрд▓ рдХрд░реНрд▓ рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рдж рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рдЕрднреА рднреА php + рдХрд░реНрд▓ рдпрд╛ рдЕрдЬрдЧрд░ + pycurl рд╕реЗ рддреЗрдЬ рд╣реИ? 4 рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдЗрд╕ рдЬреЛрдбрд╝реА рдиреЗ рднрд╛рдЧ рд▓рд┐рдпрд╛:
рдЫрд╡рд┐

рдЫрд╡рд┐
php рдиреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╕рднреА 4 рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо


рд╕рд░рд▓ GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдХрд░реНрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
- рдпрд╣ рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рдореЗрдВ рд▓рдЧрднрдЧ 2 рдЧреБрдирд╛ рдХреА рдХрдореА рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ pycurl рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдЕрдЬрдЧрд░ рдХрд░реНрд▓ рдХреЗ рд╕рд╛рде php рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
рд╢рд╛рдпрдж рдкрд░реАрдХреНрд╖рдг рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдкрдХреНрд╖рдкрд╛рддреА рд╣реИрдВ, рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдЪрд┐рдд рдард╣рд░рд╛рдПрдВред

рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб


рдПрдХ рдЫреЛрдЯрд╛ рд╕реА рдХрд╛рд░реНрдпрдХреНрд░рдо

рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд╕рдордп рдХреЛ рдорд╛рдкрддрд╛ рд╣реИред
#include <sys/time.h> #include <stdlib.h> struct timeval tv1, tv2, dtv; struct timezone tz; //time_ functions from http://ccfit.nsu.ru/~kireev/lab1/lab1time.htm void time_start() { gettimeofday(&tv1, &tz); } long time_stop() { gettimeofday(&tv2, &tz); dtv.tv_sec= tv2.tv_sec -tv1.tv_sec; dtv.tv_usec=tv2.tv_usec-tv1.tv_usec; if(dtv.tv_usec < 0) { dtv.tv_sec--; dtv.tv_usec += 1000000; } return dtv.tv_sec * 1000 + dtv.tv_usec / 1000; } int main(int argc, char **argv) { if(argc > 1) { time_start(); system(argv[1]); printf("\nTime: %ld\n", time_stop()); } else printf("Usage:\n timer1 command\n"); return 0; } 


рдкреАрдПрдЪрдкреА

 $t = 'http://www.2ip.ru/'; //target for($i=0; $i < 50; $i++) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $t); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLINFO_HEADER_OUT, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Firefox/17.0'); curl_setopt($ch, CURLOPT_ENCODING, 'utf-8'); curl_setopt($ch, CURLOPT_TIMEOUT, 200); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); $data = curl_exec($ch); curl_close($ch); } 

рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╡рд┐рдХрд▓реНрдк (рд╕реЙрдХреЗрдЯ)
 $t = 'http://www.2ip.ru/'; //target for($i=0; $i < 50; $i++) { $service_port = 80; $address = gethostbyname('www.2ip.ru'); $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) { echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n"; } else { //echo "OK.\n"; } $result = socket_connect($socket, $address, $service_port); if ($result === false) { echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n"; } else { //echo "OK.\n"; } $in = "GET / HTTP/1.1\r\n"; $in .= "Host: www.example.com\r\n"; $in .= "Connection: Close\r\n\r\n"; $out = ''; $r = ''; socket_write($socket, $in, strlen($in)); while ($out = socket_read($socket, 2048)) { $r .= $out; } socket_close($socket); //echo $r; } 


рдЕрдЬрдЧрд░

 import pycurl import cStringIO for i in range(50): buf = cStringIO.StringIO() c = pycurl.Curl() c.setopt(c.URL, 'http://www.2ip.ru/') c.setopt(c.WRITEFUNCTION, buf.write) c.perform() #print buf.getvalue() buf.close() 


рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рдХрд░реНрд▓ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП:
 #!/bin/bash testdir="/home/developer/Desktop/tests" i=0 while [ $i -lt 50 ] do curl -s -o "$testdir/tmp_some_file" "http://www.2ip.ru/" let i=i+1 done 

рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП:
 #!/bin/bash testdir="/home/developer/Desktop/tests" echo "php curl" "$testdir/timer1" "php $testdir/testCurl.php" echo "curl to file" "$testdir/timer1" "bash $testdir/curl2file.sh" #echo "curl to file (php)" #"$testdir/timer1" "php $testdir/testCurl2.php" echo "php socket" "$testdir/timer1" "php $testdir/testCurl3.php" echo "python pycurl" "$testdir/timer1" "python $testdir/1.py" 

Source: https://habr.com/ru/post/In166633/


All Articles