ホームページ  >  記事  >  バックエンド開発  >  PHP は QQ メールボックスへのログインをシミュレートします (curl コマンドの詳細な説明)

PHP は QQ メールボックスへのログインをシミュレートします (curl コマンドの詳細な説明)

WBOY
WBOYオリジナル
2016-07-25 09:03:561798ブラウズ
  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, CURLOPT_SSL_VERIFYPEER, 0) // 認証証明書のソースを確認します
  7. curl_setopt($curl) , CURLOPT_SSL_VERIFYHOST, 1) ; // 証明書から SSL 暗号化アルゴリズムが存在するかどうかを確認します
  8. curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['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_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']) // Cookie 情報を保存するファイルの名前
  14. curl_setopt($curl, CURLOPT_COOKIEFILE, $ GLOBALS['cookie_file']); // 上記に保存されている Cookie 情報を読み取ります
  15. curl_setopt($curl, CURLOPT_TIMEOUT, 30) // 無限ループを防ぐためにタイムアウト制限を設定します
  16. curl_setopt($curl, CURLOPT_HEADER, 0);返されたヘッダー領域の内容
  17. curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1); // 取得した情報はファイルストリームの形式で返されます
  18. $tmpInfo =curl_exec($curl) // 操作を実行します
  19. if ( curl_errno($curl)) {
  20. echo 'Errno'.curl_error($curl); }
  21. curl_close($curl) // CURL セッションを閉じる
  22. return $tmpInfo;
  23. function vget( $url){ // コンテンツを取得する関数をシミュレートします
  24. $curl =curl_init(); // CURL セッションを開始します
  25. curl_setopt($curl, CURLOPT_URL, $url) // アクセスするアドレス
  26. curl_setopt($curl); , CURLOPT_SSL_VERIFYPEER, 0); // 認証証明書のソースを確認します
  27. curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, 1) // 証明書から SSL 暗号化アルゴリズムが存在するかどうかを確認します
  28. curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER[' HTTP_USER_AGENT']); // ユーザーが使用するブラウザをシミュレートします
  29. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 自動リダイレクトを使用します
  30. curl, CURLOPT_AUTOREFERER, 1) // リファラーを自動的に設定します
  31. curl_setopt($) curl, CURLOPT_HTTPGET, 1); // 通常の Post リクエストを送信します
  32. curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']) // 上に保存されている Cookie 情報を読み取ります
  33. curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 無限ループを防ぐためのタイムアウト制限を設定します
  34. curl_setopt($curl, CURLOPT_HEADER, 0); // 返されたヘッダー領域の内容を表示します
  35. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 取得した情報はファイルストリームの形式
  36. $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); // 証明書から SSL 暗号化アルゴリズムが存在するかどうかを確認します
  48. curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT'] ) // ユーザーが使用するブラウザをシミュレートします
  49. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); / 自動ジャンプを使用する
  50. curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // リファラーを自動的に設定する
  51. curl_setopt($curl, CURLOPT_POST , 1) // 通常の Post リクエストを送信する
  52. curl_setopt($curl, CURLOPT_POSTFIELDS, $data); ; // 送信されたデータ パケットを送信します
  53. curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']) // 上記に保存されている Cookie 情報を読み取ります
  54. curl_setopt($curl, CURLOPT_TIMEOUT, 30) // タイムアウト制限を設定します無限ループ
  55. curl_setopt($curl, CURLOPT_HEADER, 0); // 返されたヘッダー領域の内容を表示します
  56. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1) // 取得した情報はファイルストリームの形式で返されます
  57. $ tmpInfo =curl_exec($curl); // 操作を実行します
  58. if (curl_errno($curl)) {
  59. echo 'Errno'.curl_error( $curl) }
  60. curl_close($curl); // キー CURL セッション
  61. return $tmpInfo; // データを返す
  62. }

  63. function delcookie($cookie_file){ // Cookie を削除する関数

  64. @unlink($cookie_file) // 削除を実行する
  65. }

  66. function readcookies( $file)

  67. {
  68. $result = null;
  69. $fp = fopen( $file, "r" );
  70. if($fp)
  71. {
  72. while ( !feof( $fp ) )
  73. {
  74. $buffer = fgets( $fp, 4096 );
  75. $result = $buffer;
  76. //$tmp = @split( "/t", $buffer );
  77. //$ result[@trim( $tmp[5] )] = @trim( $tmp[6] );
  78. }
  79. fclose($fp);
  80. }
  81. return $result;
  82. }
  83. $url = 'http: //w.mail.qq.com/cgi-bin/loginpage?f=xhtml';
  84. if(!file_exists($cookie_file)) { // Cookie が存在するかどうかを確認します
  85. $str = vget($url) / / 送信背景を取得
  86. preg_match("/action="([^"]*?)"/isU",$str,$hash); // ログインランダム値を抽出
  87. print_r($hash[1]);
  88. vlogin( $hash[1],'&f=xhtml&uin=あなたの qq 番号&aliastype=@qq.com&pwd=qq 番号パスワード&mss=1'); // ログインして Cookie

  89. }

  90. else
  91. {
  92. vget("http://w30.mail.qq.com/cgi-bin/today?sid=ggQq2H-cUHdDdHs0z6rT6vN8,4,z-yTNgDwU&first=1");
  93. echo 'Cookie が生成されました'
  94. }
  95. ? >

コードをコピー

>>> PHP シミュレートされたログインに関するその他の記事については、トピック リンクを参照してください: PHP シミュレートされたログイン php Curl シミュレートされたログイン チュートリアル コレクション



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。