首頁  >  文章  >  後端開發  >  php模擬登入qq信箱(curl指令詳解)

php模擬登入qq信箱(curl指令詳解)

WBOY
WBOY原創
2016-07-25 09:03:561758瀏覽
  1. header("Content-type:text/html;charset=utf-8");

  2. $ cookie_file = dirname(__FILE__)."/cookie_".md5(basename(__FILE__)).".txt"; // 設定Cookie檔案保存路徑及檔案名稱
  3. function vlogin($url,$data){ //模擬登入取得Cookie函數
  4. $curl = curl_init(); // 啟動一個CURL會話
  5. curl_setopt($curl, CURLOPT_URL, $url); // 要存取的位址
  6. curl_setopt($curl, CURVPTcurl. , 0); // 對認證憑證來源的檢查
  7. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從憑證檢查SSL加密演算法是否存在
  8. curl_setopt($curl, CURLOPT_USERAGENT, $_USERA[' HTTP_USER_AGENT']); // 模擬使用者使用的瀏覽器
  9. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉
  10. curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
  11. curl_setopt($curl, CURLOPT_POST, 1); // 發送一個常規的Post請求
  12. curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的封包
  13. curl_topt($ccurlse, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']); // 存放Cookie訊息的檔案名稱
  14. curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 讀取上面儲存的COOKIEFILE, $GLOBALS['cookie_file']); // 讀取上面所儲存的CookieM> > curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設定超時限制防止死迴圈
  15. curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示傳回的Header區域內容
  16. curl_HEADER, 0); // 顯示傳回的Header區域內容
  17. curl_setopt($cUR, CUR3, CUR3, CURS, CURS, CURS, CUR3, CURS, CUR3, CUR3, CURS, CUR3, CURS, CUR3, CURS, CUR3, CURS, CUR3, CURA4UR3, CURA) 內容[ 1); // 取得的資訊以檔案流的形式傳回
  18. $tmpInfo = curl_exec($curl); // 執行操作
  19. if (curl_errno($curl)) {
  20. echo 'Errno'. curl_error($curl);
  21. }
  22. curl_close($curl); // 關閉CURL會話
  23. return $tmpInfo; // 回傳資料
  24. }
  25. function vget($url ){ // 模擬取得內容函數
  26. $curl = curl_init(); // 啟動一個CURL會話
  27. curl_setopt($curl, CURLOPT_URL, $url); // 要存取的位址
  28. curl_setopt($ curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查
  29. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從憑證檢查SSL加密演算法是否存在
  30. curl_urlstopt($c), Curl. _SERVER['HTTP_USER_AGENT']); // 模擬使用者所使用的瀏覽器
  31. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉
  32. curl_setopt($curl, CURLOPT_AUEFER, ,自動設定Referer
  33. curl_setopt($curl, CURLOPT_HTTPGET, 1); // 傳送一個常規的Post請求
  34. curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file'] // 上面儲存的Cookie訊息
  35. curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設定超時限制防止死迴圈
  36. curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示傳回的Header區域內容 $tmpInfo = curl_exec($curl); // 執行操作
  37. if (curl_errno($curl)) {
  38. echo 'Errno'.curl_error($curl);
  39. }
  40. curl_close($curl); // 關閉CURL會話
  41. return $tmpInfo; // 回傳資料
  42. }
  43. function vpost($url,$data){ // 模擬提交資料函數
  44. $curl = curl_init(); // 啟動一個CURL會話
  45. curl_setopt($curl, CURLOPT_URL, $url); // 要存取的位址
  46. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證憑證來源的檢查
  47. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從憑證中檢查憑證是否存在curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬使用者使用的瀏覽器
  48. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳到url , CURLOPT_AUTOREFERER, 1); // 自動設定Referer
  49. curl_setopt($curl, CURLOPT_POST, 1); // 傳送一個常規的Post請求
  50. curl_setopt($curl, CURLOPT_POSTFIDS, $LOPT_的封包
  51. curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 讀取上面所儲存的Cookie資訊
  52. curl_setopt($curl, CURLOPT_TIMEOUT, 30);防止死迴圈
  53. curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示傳回的Header區域內容
  54. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 取得的資訊以檔案流的形式傳回🎜 > $tmpInfo = curl_exec($curl); // 執行操作
  55. if (curl_errno($curl)) {
  56. echo 'Errno'.curl_error($curl);
  57. }
  58. curl_close($ curl); // 關鍵CURL會話
  59. return $tmpInfo; // 回傳資料
  60. }
  61. function delcookie($cookie_file){ // 刪除Cookie函數

  62. @unlink ($cookie_file); // 執行刪除
  63. }
  64. function readcookies( $file)

  65. {
  66. $result = null;
  67. $fp = fopen( $file, "r" );
  68. if($fp)
  69. {
  70. while ( !feof( $fp ) )
  71. {
  72. $buffer = fgets( $fp, 4096 );
  73. $result = $buffer; //$tmp = @split( "/t", $buffer );
  74. //$result[@trim( $tmp[5] )] = @trim( $tmp[6] );
  75. }
  76. fclose($fp);
  77. }
  78. return $result;
  79. }
  80. $url = 'http://w.mail.qq.com/ cgi-bin/loginpage?f=xhtml';
  81. if(!file_exists($cookie_file)) { // 偵測Cookie是否存在
  82. $str = vget($url); // 取得提交後台
  83. preg_match("/action="([^"]*?)"/isU",$str,$hash); // 提取登入隨機值
  84. print_r($hash[1]);
  85. vlogin( $hash[1],'&f=xhtml&uin=你的qq號&aliastype=@qq.com&pwd=qq號密碼&mss=1'); // 登入取得Cookie
  86. }

  87. else
  88. {
  89. vget("http://w30.mail.qq.com/cgi-bin/today?sid=ggQq2H-cUHdDdHs0z6rT6vN8,4,z-yTNgDwU&first=1");}
  90. ?>
複製程式碼
>>> 更多關於php模擬登入的文章,請參考專題連結:php模擬登入php curl模擬登入教學大全


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn