Pomoc - Szukaj - Uytkownicy - Kalendarz
Pena wersja: FSOCKOPEN i proxy oraz logowanie
Forum PHP.pl > Forum > PHP
kuna
no wiec tak chcialem aby moj skrypt zalogowal sie sam na groups.yahoo.com
napisalem cos takiego:

  1. <?
  2. functioncurl_string($url,$user_agent){
  3.  
  4. $ch=curl_init();
  5. curl_setopt($ch,CURLOPT_URL,$url);
  6. curl_setopt($ch,CURLOPT_USERAGENT,$user_agent);
  7. curl_setopt($ch,CURLOPT_HEADER,1);
  8. curl_setopt($ch,CURLOPT_COOKIEJAR,&#092;"cookie.txt\");
  9. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  10. curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
  11. curl_setopt($ch,CURLOPT_TIMEOUT,120);
  12. $result=curl_exec($ch);
  13. curl_close($ch);
  14. return$result;
  15.  
  16. }
  17.  
  18. $url_page=&#092;"http://groups.yahoo.com\";
  19. $user_agent=&#092;"Mozilla/4.0\";
  20. $string=curl_string($url_page,$user_agent);
  21. echo$string;
  22. ?>


Program HttpLook wykryl mi cos takiego:

Kod
GET / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, */*
Accept-Language: pl
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; &id;)
Host: groups.yahoo.com
Connection: Keep-Alive
Cookie: B=b7qgnml0do14r&b=2; Q=q1=AACAAAAAAAAAcw--&q2=QNpEag--; F=a=vMms1JUsvUz_xGSjJA3x6PpFZdSId7dy2GCpcQRneKykqVM1u71m0S1YZ5XS&b=XsEs; C=mg=1; PH=phl=kSXuvXfDV3p8QE85i3XNCAgt7pRuJzu8f.BEKRS0RPFUFGxjVg--; Y=v=1&n=7qemk4str8qbd&l=akd74dj08/o&p=m2lvvpl002000000&jb=16|47|&iz=62-510&r=co&lg=us&intl=us; T=z=OeU3ABOkp3ABZbhFDGsMCRc&a=YAE&sk=DAAymXLnzz4YSg&d=YQFZQUUBb2sBWlcwLQF0aXABLlVSVURBAXp6AU9lVTNBQmdXQQ--; tz=y=kunhentai#co&t=1088243866&n=39424


Wiec dalem do cookie.txt to co jest po "Cookie:" ale jak wchodze na strone z mojego serwera to nie akceptuje mi cookie nie wiem czemu sad.gif wyswietla sie w headerze cos takiego:
Kod
HTTP/1.1 200 OK Date: Sat, 26 Jun 2004 10:03:43 GMT Cache-control: no-cache, must-revalidate, no-cache="Set-Cookie", private Expires: Fri, 01 Jan 1999 00:00:00 GMT P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV" Pragma: no-cache Connection: close Transfer-Encoding: chunked Content-Type: text/html Set-Cookie: B=4l7mpdp0dqifv&b=2; expires=Thu, 15 Apr 2010 20:00:00 GMT; path=/; domain=.yahoo.com


i sie okazuje ze sie nie zalogowalem sad.gif
rzseattle
Hey

Hmm na pierwszy rzut oka nie widze zeby curl mial podglad wysylanego przez siebie naglowka wiec nie sprawdzisz czy wysylany przec ciebie naglowek jestidentyczny z tym ktory wysyla twoja przegladarka. Watpie tez zeby buforowanie outputu moglo cos pomoc w tej sprawie. Sproboj laczyc sie najzwyklej soketami, bedziesz mial przynajmniej podglad tego co wysylasz.
kuna
No wiec tak sprobowalem wyslac moje naglowki fsockopen:

  1. <?
  2. $head=&#092;"GET/HTTP/1.1
  3. Accept:*


No i wszystko ladnie dziala ale pojawia sie pewien problem. Patrze sobie w httpLook'a i wszystko jest dokladnie tak samo jak mi sie wyswietla. Czyli:
Kod
HTTP/1.1 200 OK Date: Sun, 27 Jun 2004 00:08:11 GMT Cache-control: no-cache, must-revalidate, no-cache="Set-Cookie", private Expires: Fri, 01 Jan 1999 00:00:00 GMT P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV" Pragma: no-cache Cache-Control: private Connection: close Transfer-Encoding: chunked Content-Type: text/html Content-Encoding: gzip 17b8 ‹=r6&para;=w@ٴc‰$vj&copy;+I6n<&para;޻ DBb’`@R&reg;vg%9H‘E˲’:‰sp>ppw2}w2e…/”L8&not; jWnoy5 fA;•k7lRò-IBN,IcLY@5‘ H,FBf•&R$aԘ&copy; G5"wH“% &raquo;|q;QK) > 'bHT? x™z^HWb:'#‘#SX x>‰8’k(L&plusmn;‘_“WM=L3 ‡6›E&brvbar;"B~H@}&raquo;c{hEBL&copy;“—@€ѥ@‘<HjTIbpL%R~'Q۫9'mLfܹO,HXL5C&laquo;qN{]l1=+62'a&brvbar;n~tFunD7}&brvbar;EY(=@†N (^Xc‚r‘p#!&middot;OߦV–{Uc4Qz5Sl‚_j’L’zչ&para;`…B}&middot;)SW>m  [o 7I'‡|SbN\>#“ €BACt XWKAuP{2aD]tEkm?„CREqO&plusmn;'Ĩt&brvbar;z:8hn‹01*1&reg; @i1™Q/$֫Ob:fs7f/aR…kTRGFм5 ‘sSV`?‰(RѻQC$hlk#‚&copy;-’So‹C#Du0 4$‚ +XzUn9&plusmn;i™uk-&raquo;&plusmn;A>n6:nl[= &brvbar;gjI4/‹][Gv&para;=mZ׽&brvbar;'! “Z趡]’V3N+{_ €>y…i:V}w”E|”&para; A﮺0(<VPFjIeAԸ‚6f‹&middot;…_—/TF|&reg;—‹&reg;;2`ˡ N?m0&micro;|2{vY]R&laquo;[O(ɨ—DbY1‹b„ Q†&para;›Y2Uu&middot;oTuO\&plusmn;QmѸLl&para;ؐEFP&plusmn;[D ƽ 56E’cD› \‘%#B”*:Q”K4‰3=&R~)&m:T=^7P+t)A'JaJ&micro;T‡ RTpj.k¸8f4&plusmn;Zyt2y‘"’` T“‘ ‘[‡ >“—€›:#>&not;€ֈY<wٮ€’&middot;IR†„&micro;€”*#@a(Ř{-q™V'Ų-)‰뾹vfT;99nm,!fTIi‚$4C1UM -"n“BOo&laquo;•dNL54`!}—f jYoz&raquo;');BM?>‡#9G‡nsi&para;l&raquo;qpj7 eUP7U„u –e ?}&copy;‚+=rmr$›~„‹K&raquo;s|&brvbar;_xtAb$“h{*8…7J"(j(0 ,c&T  $x4Թ€5,f&para;‡‰?’ 4FIpnDfPu<&micro; ;i1/‚iI&para;6 ”&not;™~!›/9[f׭‘#\YJ!8"Bn&laquo;9„0O(65mSJ–&not;߷xScL&copy;&raquo;v b0~~f=5^aFxKcN~)A•a†&copy;GjY :#A&copy;‹&para;—)†…“™z&reg;)y–?/&brvbar;OFx9&plusmn;Fzb[&eL&not;0m™I.k6l<F"5&brvbar;,ZDwzJ—gG 3~™”>R&para;֩ãhc%&micro;z5KrS&micro;VNء -&para;d'Z ԱrIͪZC†&raquo;LKtrZP9{%V9‰„[>`'%R^A&micro;rL&raquo;jVB’Zg-=a0€…‡.d F–R&para;&reg;%1;›2&=z–FdT”ҷi]S&raquo;*€nt&raquo;t{^%(|R 4`._է13,&laquo;&copy;'~pxaf9OG~‚"KV_‚aI=NE—2v„`>\{^5F/…d&middot;pv &plusmn;+ <a\ɱC$q†Ťw%pjL `1p8[%0a1]I@‡<—f"H3 aQ9†k5wfwԐ͸—Z&reg;rA=Ŵd4&middot;S–3!_E1@<:—%5Rx,„,kB&raquo;@d lKeT4aF‘aS&reg;cs^b&reg;FlZBzOE}‹ha|`Q!{Ub* -&not;HO&brvbar;, BlM—Wts&plusmn;†TۘE"Mc›&reg;E&plusmn;> ٘Eb—D‹%1B#B‰qdA’‘“'„W=?'&reg;z‹_aN Lc&plusmn;M㲺}r™>&reg;™rY5 fLI6J[,&copy;J c)RKfF&laquo;lN@Fd&plusmn;&brvbar;4&^M ›(@}&laquo;€– —v!&nps'„1s&micro;1VA"$d"„"€&"PL^E X&not;›&para;ry\^&laquo;N]5'f?9$H„}\>q&copy;&not;8A&not;6úY5r3&laquo;Gt0B\z€B0YA;j#6W"q&brvbar;@K<%cɷp&copy;Ͻ&brvbar;{yoIũ YUd"Uo‡c6*…*T&para;›W Ut&not;ٽifW&middot;–D„ᴿ<[5G&micro;~Gz(j!&not;5–{&laquo;x&not;GuZ&raquo;–B()r.?&micro;(ei}T{&raquo;&para;ezIp›‘k{3Ĥι&plusmn;&not;.&not;B Sfl&copy;p{&micro; ‹ky#n&para;†q<&brvbar;\{•QMTs bj&copy;+d”j#‘UH=D1uIx‡8™RҷJx09ZOF(Mt&middot;zBz_†u.9›AIBt•]+gfh,^\PN ><Q L?%~&raquo;^cg€5$ ’&not;‘†o7M[!eGK‰™2’%jxd‰‡W &laquo;ӥ‰PC—!:GTYۨ0>‡–x?d;()r2QX—0 ”†\Q›D&brvbar;Qwf…‹&copy;p6’c]JxV?07—${J]2’x&micro;ސ&’T&reg;3&reg;(&para;1ORGfH}lsLso-~u&brvbar;”k–fm++&reg;l‘sT ^&plusmn;o# t ^ޤ۲z3‰&not;IR…m‡‹‹?–/€‰p)J•pa;;e•(=7ҲJ†d‚&laquo; Gc ^{ ’“M3J:iY":Urx,Ⱥ'– 2njfG\T–l ‘8!&not; 1E&para;E‹j~;#fXӴv(!™)- 'TW%&para;?qlx%`c&para;/Jm‡f&not;wV vQaxЪfap›–Op{–(?S&raquo; EZf[K*|}j`@) 2?mUx `}v€+9rI&middot;‡*تs.™|[88&reg;&plusmn;&middot;&middot;‹K;݃&para;&not;cw&raquo;‹$&raquo;m9&raquo;‚3J“EpW•w'&brvbar;/ tr7ca9&copy;OZsILo mw?&raquo;I%‰’ݪ&laquo;Ř€zr‘ b}&raquo;[{? ‡z$.t\6&middot;&g("v/™opg—/M“m=_?9›&9^`B„&raquo;9"M/$~z†W¤$ߴoy S6P2ԭ#@/›B¢U MPl&reg;&micro;F+/.k)AJr&micro;&brvbar;Pe—8aO&middot;‰&plusmn;=3s='z qu*rr>q“–3M‚;’“’€>|<znV„+l 0


No i wlasciwie nie wiem co mam dalej zrobic poniewaz w HTTPLOOK'u jest tak ze pojawia sie jeszcze kilka procesow mniej wiecej opiera sie to tak ze przegladarka cos wysyla pozniej dostaje odpowiedz itd. Jednak w mojej (zielonej) glowce zrodzilo sie pytanie czy czasem ten kod nie jest kodem strony ktra po rozkodowaniu da mi swoja zawartosc.

Powiedzcie co mam dalej robic, siedze nad tym juz od pitku i dalje idzie mi to jak krew z nosa sad.gif
mls
Wyrzu z zapytania do serwera lini z Accept-Encoding:
  1. <?php
  2. $head=&#092;"GET/HTTP/1.1
  3. Accept:*


Aktualnie masz w Accept-Encoding warto gzip, wic zawarto od serwera dostajesz w spakowanej formie smile.gif
kuna
No wiec tak postanowilem sie polaczyc poprzez proxy i zalogowac uzywajac funkcji fsockopen.

Logowanie juz zrobilem wysylajac odpowiednie naglowki i znalazlem odpowiedni skrypt do laczenia sie przez proxy , tylko "ni cholery" nie wiem jak je polaczyc.

Przykladowy skrypt z php.net do laczenia prze proxy:
  1. <?php
  2.  
  3. $proxy=&#092;"192.168.10.1\";
  4. $port=8080;
  5. $url=&#092;"http://www.php.net/\";
  6. $fp=fsockopen($proxy,$port);
  7. fputs($fp,&#092;"GET$urlHTTP/1.0rnHost:$proxyrnrn\");
  8. while(!feof($fp)){
  9. $line=fgets($fp,4000);
  10. print($line);
  11. }
  12. fclose($fp);
  13.  
  14. ?>


Skrypt do logowania jest troche wyzej. No i teraz nasuwa sie problem jak te dwa skrypty polaczyc bo jak mi sie wydaje to one sie kloca poniewaz z tego co sie orientuje to w naglowku wysyalany jest url host z ktorym chce sie polaczyc. Ale jak wyslac jeszcze naglowek w ktorym mam cookie odpowiedzialne za logowanie ?
To jest wersja lo-fi gwnej zawartoci. Aby zobaczy pen wersj z wiksz zawartoci, obrazkami i formatowaniem prosz kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.