Jquery中文網 www.twdanq.live
Jquery中文網 >  腳本編程  >  php  >  正文 php模擬登錄qq郵箱(curl命令詳解)

php模擬登錄qq郵箱(curl命令詳解)

發布時間:2015-01-22   編輯:www.twdanq.live
php模擬登錄qq郵箱(curl命令詳解)

php模擬登錄qq郵箱(curl命令詳解),感興趣的朋友可以參考下。
 

復制代碼 代碼如下:

<?php
header("Content-type:text/html;charset=utf-8");
$cookie_file = dirname(__FILE__)."/cookie_".md5(basename(__FILE__)).".txt"; // 設置Cookie文件保存路徑及文件名
function vlogin($url,$data){ // 模擬登錄獲取Cookie函數  
    $curl = curl_init(); // 啟動一個CURL會話  
    curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址              
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查  
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從證書中檢查SSL加密算法是否存在  
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬用戶使用的瀏覽器  
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉  
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer  
    curl_setopt($curl, CURLOPT_POST, 1); // 發送一個常規的Post請求  
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數據包  
    curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']); // 存放Cookie信息的文件名稱  
    curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 讀取上面所儲存的Cookie信息 
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環  
    curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容  
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回
    $tmpInfo = curl_exec($curl); // 執行操作
    if (curl_errno($curl)) {  
       echo 'Errno'.curl_error($curl);  
    }  
    curl_close($curl); // 關閉CURL會話  
    return $tmpInfo; // 返回數據  
}  
 
function vget($url){ // 模擬獲取內容函數  
    $curl = curl_init(); // 啟動一個CURL會話  
    curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址              
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查  
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從證書中檢查SSL加密算法是否存在  
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬用戶使用的瀏覽器  
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉  
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer  
    curl_setopt($curl, CURLOPT_HTTPGET, 1); // 發送一個常規的Post請求  
    curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 讀取上面所儲存的Cookie信息  
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環  
    curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容  
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回  
    $tmpInfo = curl_exec($curl); // 執行操作  
    if (curl_errno($curl)) {  
       echo 'Errno'.curl_error($curl);  
    }  
    curl_close($curl); // 關閉CURL會話  
    return $tmpInfo; // 返回數據  
}  
 
function vpost($url,$data){ // 模擬提交數據函數  
    $curl = curl_init(); // 啟動一個CURL會話  
    curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址              
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查  
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從證書中檢查SSL加密算法是否存在  
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬用戶使用的瀏覽器  
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉  
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer  
    curl_setopt($curl, CURLOPT_POST, 1); // 發送一個常規的Post請求  
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數據包  
    curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 讀取上面所儲存的Cookie信息  
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環  
    curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容  
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回  
    $tmpInfo = curl_exec($curl); // 執行操作  
    if (curl_errno($curl)) {  
       echo 'Errno'.curl_error($curl);  
    }  
    curl_close($curl); // 關鍵CURL會話  
    return $tmpInfo; // 返回數據  
}

function delcookie($cookie_file){ // 刪除Cookie函數  
 @unlink($cookie_file); // 執行刪除  
}  

function readcookies( $file)
{
        $result = null;
      
        $fp = fopen( $file, "r" );
        if($fp)
        {
          while ( !feof( $fp ) )
          {
              $buffer = fgets( $fp, 4096 );
              $result = $buffer;
              //$tmp = @split( "/t", $buffer );
              //$result[@trim( $tmp[5] )] = @trim( $tmp[6] );
          }
        
          fclose($fp);
        }
      
        return $result;
}
$url = 'http://w.mail.qq.com/cgi-bin/loginpage?f=xhtml';
if(!file_exists($cookie_file)) { // 檢測Cookie是否存在  
    $str = vget($url); // 獲取提交后臺
    preg_match("/action=\"([^\"]*?)\"/isU",$str,$hash); // 提取登錄隨機值
    print_r($hash[1]);
    vlogin($hash[1],'&f=xhtml&uin=你的qq號&[email protected]&pwd=qq號密碼&mss=1'); // 登錄獲取Cookie

}
else
{
    vget("http://w30.mail.qq.com/cgi-bin/today?sid=ggQq2H-cUHdDdHs0z6rT6vN8,4,z-yTNgDwU&first=1");
    echo '生成了cookie';   
}
?>

>>> 更多有關php模擬登錄的文章,請參考專題鏈接:php模擬登錄 php curl模擬登錄教程大全

您可能感興趣的文章:
php模擬登錄qq郵箱(curl命令詳解)
php file_get_contents函數抓取頁面信息的代碼
php curl模擬登錄discuz并模擬發帖的實現方法
PHP中用CURL偽造IP來源的方法
php curl 學習總結
windows下php開啟curl_init的方法
郵件系統基本的網絡協議
php中通過curl smtp發送郵件的例子
php:Call to undefined function curl_init()的解決方法
Laravel實現找回密碼及密碼重置的例子

關鍵詞: curl  php curl  php模擬登錄  模擬登錄   
[關閉]
广西快乐10分怎样开奖号码 微乐长春麻将外挂 360配资 河南新县119麻将怎么玩 汇金门配资 贵阳捉鸡麻将单机下 上海敲麻麻将技巧口 快乐十分云南定牛 快三开奖结果安徽 广东11选5怎么算 台湾写真麻将手机游戏 股票指数基金收益如何计算 短线股票推荐芜湖 西北轴承股票 上海股票配资 微乐麻将下载手机版 甘肃快3平台