直接来demo可以研究研究

  1. <?php
  2. header('Content-type:text/html;charset=utf-8');
  3.  
  4.  
  5. function login($u,$p){
  6. $cookie_file = dirname(__FILE__) . '/cookie/'.$u.'.txt';
  7. $su = base64_encode($u);
  8. $url_1 = "https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=".get_total_millisecond();
  9. $res_login = get_login_page($url_1,$cookie_file);
  10. $url_sso = "https://login.sina.com.cn/signup/signin.php?entry=sso";
  11. $res_sso = get_sso_page($url_sso,$cookie_file,$url_1);
  12. $url_pre = "https://login.sina.com.cn/sso/prelogin.php?entry=sso&callback=sinaSSOController.preloginCallBack&su=".$su."&rsakt=mod&client=ssologin.js(v1.4.15)&_=".get_total_millisecond();
  13. $res_pre = get_pre_page($url_pre,$cookie_file,$url_sso);
  14. preg_match('#\((.*)\)#isU',$res_pre,$l);
  15. $a_s = json_decode($l[1]);
  16. $url_2 = "https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=".get_total_millisecond();
  17. $lo_data['entry'] = 'sso';
  18. $lo_data['gateway'] = '1';
  19. $lo_data['from'] = 'null';
  20. $lo_data['savestate'] = '30';
  21. $lo_data['useticket'] = '0';
  22. $lo_data['pagerefer'] = $url_2;
  23. $lo_data['vsnf'] = '1';
  24. $lo_data['su'] = $su;
  25. $lo_data['service'] = 'sso';
  26. $lo_data['servertime'] = $a_s->servertime;
  27. $lo_data['sp'] = $p;
  28. $lo_data['sr'] = '1920*1080';
  29. $lo_data['encoding'] = 'UTF-8';
  30. $lo_data['cdult'] = '3';
  31. $lo_data['domain'] = 'sina.com.cn';
  32. $lo_data['prelt'] = '14';
  33. $lo_data['returntype'] = 'TEXT';
  34. $res_login_one = json_decode(login_post($url_2,$lo_data,$cookie_file,$url_sso));
  35. if($res_login_one->retcode == '0'){
  36. $return=get_cookie($res_login_one->crossDomainUrlList[0],$cookie_file);
  37. echo 'ok';
  38. }else{
  39. echo '登录失败,请检查配置';
  40. // get_page($email_url);
  41. }
  42.  
  43. }
  44.  
  45.  
  46.  
  47.  
  48. function get_page($url)
  49. {
  50. $ch = curl_init();
  51. curl_setopt($ch,CURLOPT_URL,$url);
  52. curl_setopt($ch,CURLOPT_HEADER,0);
  53. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  54. $return = curl_exec($ch);
  55. curl_close($ch);
  56. return $return;
  57. }
  58.  
  59. function get_cookie($login,$cookie_file)
  60. {
  61. $ch = curl_init();
  62. curl_setopt($ch,CURLOPT_URL,$login);
  63. curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false);
  64. curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false);
  65. curl_setopt($ch,CURLOPT_HEADER,0);
  66. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  67. curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_file);
  68. curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
  69. $return = curl_exec($ch);
  70. curl_close($ch);
  71. return $return;
  72. }
  73.  
  74. function login_post($url,$data,$cookie_file,$url_sso)
  75. {
  76. $header[] = 'Host: login.sina.com.cn';
  77. $header[] = 'Connection: keep-alive';
  78. $header[] = 'Origin: https://login.sina.com.cn';
  79. $header[] = 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36';
  80. $header[] = 'Content-Type: application/x-www-form-urlencoded';
  81. $header[] = 'Accept: */*';
  82. $header[] = 'Referer: '.$url_sso;
  83. $header[] = 'Accept-Language: zh-CN,zh;q=0.9';
  84.  
  85. $ch = curl_init();
  86. curl_setopt($ch,CURLOPT_URL,$url);
  87. curl_setopt($ch,CURLOPT_HTTPHEADER, $header);
  88. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  89. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  90. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  91. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  92. curl_setopt($ch,CURLOPT_POST,1);
  93. curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($data));
  94. curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_file);
  95. curl_setopt($ch,CURLOPT_COOKIEJAR, $cookie_file);
  96. $return = curl_exec($ch);
  97. curl_close($ch);
  98. return $return;
  99. }
  100.  
  101. function get_pre_page($url,$cookie_file,$url_sso)
  102. {
  103. $header[] = 'Host: login.sina.com.cn';
  104. $header[] = 'Connection: keep-alive';
  105. $header[] = 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36';
  106. $header[] = 'Accept: */*';
  107. $header[] = 'Referer: '.$url_sso;
  108. $header[] = 'Accept-Language: zh-CN,zh;q=0.9';
  109.  
  110. $ch = curl_init();
  111. curl_setopt($ch,CURLOPT_URL,$url);
  112. curl_setopt($ch,CURLOPT_HTTPHEADER, $header);
  113. curl_setopt($ch,CURLOPT_HEADER,0);
  114. curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false);
  115. curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false);
  116. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  117. curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );
  118. curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_file);
  119. curl_setopt($ch,CURLOPT_COOKIEJAR, $cookie_file);
  120. $return = curl_exec($ch);
  121. curl_close($ch);
  122. return $return;
  123. }
  124.  
  125. function get_sso_page($url,$cookie_file,$url_1)
  126. {
  127. $header[] = 'Host: login.sina.com.cn';
  128. $header[] = 'Connection: keep-alive';
  129. $header[] = 'Upgrade-Insecure-Requests: 1';
  130. $header[] = 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36';
  131. $header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8';
  132. $header[] = 'Referer: '.$url_1;
  133. $header[] = 'Accept-Language: zh-CN,zh;q=0.9';
  134.  
  135. $ch = curl_init();
  136. curl_setopt($ch,CURLOPT_URL,$url);
  137. curl_setopt($ch,CURLOPT_HTTPHEADER, $header);
  138. curl_setopt($ch,CURLOPT_HEADER,0);
  139. curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
  140. curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, false);
  141. curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
  142. curl_setopt($ch,CURLOPT_FOLLOWLOCATION, 1 );
  143. curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_file);
  144. curl_setopt($ch,CURLOPT_COOKIEJAR, $cookie_file);
  145. $return = curl_exec($ch);
  146. curl_close($ch);
  147. return $return;
  148. }
  149.  
  150. function get_login_page($url,$cookie_file)
  151. {
  152. $header[] = 'Host: login.sina.com.cn';
  153. $header[] = 'Connection: keep-alive';
  154. $header[] = 'Upgrade-Insecure-Requests: 1';
  155. $header[] = 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36';
  156. $header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8';
  157. $header[] = 'Accept-Language: zh-CN,zh;q=0.9';
  158.  
  159. $ch = curl_init();
  160. curl_setopt($ch,CURLOPT_URL,$url);
  161. curl_setopt($ch,CURLOPT_HTTPHEADER, $header);
  162. curl_setopt($ch,CURLOPT_HEADER,0);
  163. curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false);
  164. curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false);
  165. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  166. curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );
  167. curl_setopt($ch,CURLOPT_COOKIEJAR, $cookie_file);
  168. $return = curl_exec($ch);
  169. curl_close($ch);
  170. return $return;
  171. }
  172.  
  173. function get_total_millisecond()
  174. {
  175. $time = explode (" ", microtime () );
  176. $time = $time [1] . ($time [0] * 1000);
  177. $time2 = explode ( ".", $time );
  178. $time = $time2 [0];
  179. return $time;
  180. }

相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!