Jay Kay Posted August 30, 2011 Report Share Posted August 30, 2011 (edited) Čau! Es vēlos nosūtīt pilnīgi custom HTTP GET requestu uz kādu lapu un saņemt atbildi. Piemēram, GET /index.html HTTP/9.9 Host: galigi.garam.requests Ar PHP, cik sameklēju, to var izdarīt, izmantojot http_get(), taču tam ir nepieciešams PECL, kuru man nekādīgi neizdodas piedabūt strādāt uz Fedora15. Arī ar LAMP/XAMPP nesanāk. pilnīgi gribas likt windowsu, taču man ir jāizmanto linux, jo request man jāpalaiž no šella. Nesākšu stāstīt, kas tieši man nesanāk ar PECL, jo varbūt ir tā, ka es gribu A un lai to izdarītu, man jāizdara B, taču varbūt B man nemaz nav jādara, jo pastāv citi varianti kā panākt A. Vai kāds, lūdzu, var palīdzēt? Edit: Telnet konekcija uz 80 portu man šoreiz neder, jo vajadzīgs nosūtīt special charus requestā. Edited August 30, 2011 by Jay Kay Quote Link to comment Share on other sites More sharing options...
daGrevis Posted August 30, 2011 Report Share Posted August 30, 2011 Turies pie *nix'a, vecīt. Es zinu, ka ir grūti... bet tā vajag. Ja to pat nedarīs programmētāji... kuri tad?! *histērija* Quote Link to comment Share on other sites More sharing options...
mad182 Posted August 30, 2011 Report Share Posted August 30, 2011 (edited) fsockopen un fwrite neder? Edited August 30, 2011 by mad182 Quote Link to comment Share on other sites More sharing options...
codez Posted August 30, 2011 Report Share Posted August 30, 2011 Ar http://php.net/manual/en/function.socket-write.php tu vari rakstīt ko gribi. Quote Link to comment Share on other sites More sharing options...
404 Posted August 30, 2011 Report Share Posted August 30, 2011 Ir kāds iemesls,kāpēc nevarētu izmantot http://curl.haxx.se/ vai http://www.php.net/manual/en/ref.curl.php ? Quote Link to comment Share on other sites More sharing options...
Jay Kay Posted August 30, 2011 Author Report Share Posted August 30, 2011 Ar http://php.net/manua...ocket-write.php tu vari rakstīt ko gribi. Pamēģināšu.. Ir kāds iemesls,kāpēc nevarētu izmantot http://curl.haxx.se/ vai http://www.php.net/m...en/ref.curl.php ? uzgāju šādu tutoriāli The Art Of Scripting HTTP Requests Using Curl un, piemēram, ar curl -H "Host:asdfadsf" http://mysite.com patiešam varu sabojāt requestu, taču padodot failu vai mēģinot sačakarēt to, kas seko aiz GETa curl -H "GET:ajsfdkjhsd" http://mysite.com man tik un tā korekti atgriež lapu. vēl tagad mēģinu ar netcat. Quote Link to comment Share on other sites More sharing options...
Jay Kay Posted August 30, 2011 Author Report Share Posted August 30, 2011 (edited) Paldies, ka uzvedinājāt uz domu par socketiem! Strādā exampls no php.net! Gan jau vēl kādam noderēs! <?php error_reporting(E_ALL); echo "<h2>TCP/IP Connection</h2>\n"; //local address $host = "x.x.x.x"; //some port $port = 4343; /* Get the port for the WWW service. */ $service_port = getservbyname('www', 'tcp'); /* Get the IP address for the target host. */ $address = gethostbyname('www.tvnet.lv'); /* Create a TCP/IP socket. */ $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($socket, $host, $port); if ($socket === false) { echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n"; } else { echo "OK.\n"; } echo "Attempting to connect to '$address' on port '$service_port'..."; $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 = "HEAD / HTTP/1.1\r\n"; $in .= "Host: www.tvnet.lv\r\n"; $in .= "Connection: Close\r\n\r\n"; $out = ''; echo "Sending HTTP HEAD request..."; socket_write($socket, $in, strlen($in)); echo "OK.\n"; echo "Reading response:\n\n"; while ($out = socket_read($socket, 2048)) { echo $out; } echo "Closing socket..."; socket_close($socket); echo "OK.\n\n"; ?> Edited August 30, 2011 by Jay Kay Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted August 31, 2011 Report Share Posted August 31, 2011 (edited) Ar PHP, cik sameklēju, to var izdarīt, izmantojot http_get(), taču tam ir nepieciešams PECL, kuru man nekādīgi neizdodas piedabūt strādāt uz Fedora15. Arī ar LAMP/XAMPP nesanāk. pilnīgi gribas likt windowsu, taču man ir jāizmanto linux, jo request man jāpalaiž no šella. Nu nu Fedora tajā ziņā ir ļoti laba, visus PHP moduļus var pieinstalēt apsalūti bez problēmām . Uz reiz nepateikšu, bet tās ir 5 rindiņas no ROOT . 1. instalācija -> viss tiek atvilkts no neta, un mierīgi pielikts. 2. apstiprinājums ka vēles šamo pielikt 3. ieslēgt lai palaižas automātiski -> šis var arī nebūt (viss atkarīgs kāds modulis) 4. nostopēt apache servisu 5. palaist apace servisu. VISS!!! Piedevām var instalēt klāt uzreiz vairākus moduļus P.S. a nu Fedorai standart PHP konfigurācijā nav vismaz puse no vajadzīgajiem moduļiem, tā kā tos javieno klāt atsevišķi... (zinu ka 14 nebija pat GdLib ) Edited August 31, 2011 by Grey_Wolf Quote Link to comment Share on other sites More sharing options...
marcis Posted August 31, 2011 Report Share Posted August 31, 2011 @Grey_Wolf - vai tik tādi pašas pašas pakas (packages) nav lielākajai daļai linux distributīvu (Debian, CentOS, etc)? Quote Link to comment Share on other sites More sharing options...
v3rb0 Posted August 31, 2011 Report Share Posted August 31, 2011 uz tā windows var arī programmēt? būs kaut kad jāpamēģina :> unixoīdi ir ērtāki, it sevišķi, ja gala rezultāts tāpat tiks darbināts uz kāda linukša servera. Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted August 31, 2011 Report Share Posted August 31, 2011 @marcis Vareetu buut, bet fakts paliek fakts, nekadu problemu ar jaunu PHP modulju pievienoshanu nav noverots, pat brizjam ieksh Win ir sarezgiitaak ... Quote Link to comment Share on other sites More sharing options...
rpr Posted August 31, 2011 Report Share Posted August 31, 2011 var arī izmantot to pašu file_get_contents ar context parametru: http://lv.php.net/manual/en/function.stream-context-create.php Quote Link to comment Share on other sites More sharing options...
Jay Kay Posted August 31, 2011 Author Report Share Posted August 31, 2011 (edited) Nu nu Fedora tajā ziņā ir ļoti laba, visus PHP moduļus var pieinstalēt apsalūti bez problēmām . Uz reiz nepateikšu, bet tās ir 5 rindiņas no ROOT . 1. instalācija -> viss tiek atvilkts no neta, un mierīgi pielikts. 2. apstiprinājums ka vēles šamo pielikt 3. ieslēgt lai palaižas automātiski -> šis var arī nebūt (viss atkarīgs kāds modulis) 4. nostopēt apache servisu 5. palaist apace servisu. VISS!!! Piedevām var instalēt klāt uzreiz vairākus moduļus P.S. a nu Fedorai standart PHP konfigurācijā nav vismaz puse no vajadzīgajiem moduļiem, tā kā tos javieno klāt atsevišķi... (zinu ka 14 nebija pat GdLib ) Izmantoju pamācību How to install PECL HTTP, lai varētu http_get() funkciju izmantot, taču visa beigās man tik un tā errors "call to undefined function http_get()". var arī izmantot to pašu file_get_contents ar context parametru: http://lv.php.net/ma...text-create.php Interesanti! Es stundām meklēju internetā daudzus variantus, taču neizdevās neko tamlīdzīgu atrast. Edited August 31, 2011 by Jay Kay Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.