-
-
/** - * @file class.qqhttp.php
- * QQ 메일함 로그인 획득 클래스
- * @author wc
- * @site bbs.it-home.org
- */
class QQHttp {
-
- var $cookie = '';
-
- function __cunstrut() {
- }
-
- function makeForm() {
- $form = array(
- 'url' => "http://mail. qq.com/cgi-bin/loginpage",
- );
- $data = $this->curlFunc($form);
- preg_match('/name="ts"svalue="(d )"/',$data['html'], $tspre);
- $ts = $tspre[1];
- preg_match('/action="http://(md ).mail.qq.com/',$data['html'], $server);
- $server_no = $server[1];
-
- /* login.html 载入 */
- $html = file_get_contents(dirname(__FILE__).'/login.htm')
- $html = str_replace('{_ts_}', $ts, $html);
- $html = str_replace('{_server_no_}',$server_no, $html)
- return $html; )
- {
- $ch = 컬_init();
- 컬_setopt($ch, CURLOPT_URL, $array['url'])
- 컬_세톱($ch, CURLOPT_RETURNTRANSFER, true); if( isset($array['header']) && $array['header'] ) {
- cur_setopt($ch, CURLOPT_HEADER, 1)
- }
- if(isset($array[' httpheader'])) {
- 컬_setopt($ch, CURLOPT_HTTPHEADER, $array['httpheader']);
- }
- if(isset($array['referer'])) {
- cur_setopt($ch, CURLOPT_REFERER, $array['referer']);
- }
- if( isset($array['post']) ) {
- 컬_setopt($ch, CURLOPT_POST, 1 );
- 컬_setopt($ch, CURLOPT_POSTFIELDS, $array['post']);
- }
- if( isset($array['cookie']) ){
- cur_setopt($ch, CURLOPT_COOKIE, $array['cookie']);
- }
- $r['erro'] = 컬_오류($ch);
- $r['errno'] = 컬_errno($ch);
- $r['html'] = 컬_exec($ch);
- $r['http_code'] = cur_getinfo($ch, CURLINFO_HTTP_CODE);
- 컬_닫기($ch);
- $r 반환;
- }
-
- /**
- * 인증 코드 이미지 및 쿠키 가져오기
- * @param Null
- *
- * @return array('img'=>String, 'cookie'=>String)
- */
- function getVFCode ()
- {
- $vfcode = array(
- 'header' => true,
- '쿠키' => 거짓,
- 'url'=>'http://ptlogin2.qq.com/getimage?aid='.$_GET['aid'].'&'.@$_GET ['t'],
- );
-
- $r = $this->curlFunc($vfcode);
- if ($r['http_code'] != 200 ) false를 반환합니다.
- $data = 분할("n", $r['html']);
- preg_match('/verifysession=([^;] );/',$data[5], $temp);
- $cookie = 트림($temp[1]);
- $img = $data[9];
- return array('img'=>$img,'cookie'=>$cookie);
- }
-
- /**
- * qq 메일박스에 로그인
- *
- * getvfcode에서 생성된 @param $cookie 쿠키
- *
- * @return array(
- * sid=>String, //User 인증 유일한 표시
- * login => Boolean, //로그인에 성공하면 true, 로그인에 실패하면 false
- * server_no => String // 서버 번호
- * Boolean / /true가 활성화되었습니다. false 이메일이 열리지 않습니다
- * cookie => String // 데이터 쿠키 가져오기
- *
- * );*/
- 함수 로그인($cookie)
- {
- /* 生成参数字符串 */
- $post = array();
- foreach($_POST as $k => $v) {
- $post[] = $k.'='.urlencode($v);
- }
- $poststr = implode('&',$post);
- $r['server_no'] = $_GET['server_no'];
-
- $login = array(
- 'url'=>'http://'.$r['server_no'].'.mail.qq.com/cgi-bin/login?sid =0,2,zh_CN',
- '헤더' => true,
- '쿠키' => 'verifysession='.$cookie,
- '추천자' => mail.qq.com/cgi-bin/loginpage',
- 'httpheader'=>array(
- "호스트: " . $r['server_no'] . '.mail.qq.com',
- "사용자 에이전트: Mozilla/5.0(Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.9) Gecko/2009040821 Firefox/3.0.9 FirePHP/0.2.4",
- "내용- 유형: application/x-www-form-urlencoded",
- ),
- 'post' => $poststr ,
- );
- $data = $this->curlFunc($login);
- $data['html'] = iconv("gb2312", "UTF-8", $data['html']);
- if ($data['http_code'] != 200) {
- $this->error($data);
- false를 반환합니다.
- }
-
- /* 测试数据 */
- //$data['html'] =file_get_contents('./r.txt');
- $r['uin'] = $_POST['uin'];
- /* 登陆错误적判断 */
- if (preg_match('|errtype=(d)|', $data['html'], $temp_err)) {
- $r['login' ] = 거짓;
- if ($temp_err[1] == 1) {
- $r['msg'] = '账号和密码错误';
- } elseif ($temp_err[1] == 2) {
- $r['msg'] = '验证码错误';
- }
- $r 반환;
- }
- /* 登陆成功 */
- preg_match('|urlHead="([^"] )"|i',$data['html'],$temp_url);
- $ urlhead = $temp_url[1];
- if (preg_match('|frame_html?sid=([^"] )"|i',$data['html'],$temp_sid) ) {
- $r ['sid'] = $temp_sid[1];
- $r['active'] = true
- } elseif (preg_match('|autoactivation?sid=([^&] )?&|i' ,$data['html'],$temp_sid) ) {
- $r['sid'] = $temp_sid[1]
- $r['active'] = false
- }
- /* 쿠키를 사용하는 데 사용되는 쿠키 */
- if (preg_match_all('|Set-Cookie:([^=] =[^;] )|i', $data['html '], $new_cookies) ) {
- $cookiestr = implode('; ', $new_cookies[1])
- $cookiesr .= '; verifysession='.$cookie;
- $r['login'] = 참;
- $r['cookie'] = $cookiestr;
- $r 반환;
- }// bbs.it-home.org
-
- function openEmail($param)
- {
- $openEmail = array(
- 'url'=>'http://'.$ param['server_no'].'.mail.qq.com/cgi-bin/autoactivation?actmode=6&sid='.$param['sid'],
- 'header' => true,
- ' 쿠키' => $param['cookie'],
- '추천자' => 'http://'.$param['server_no'].'mail.qq.com/cgi-bin/autoactivation? sid='.$param['sid'].'&action=reg_activate&actmode=6',
- 'httpheader'=>array(
- "호스트: " . $param['server_no'] . '.mail .qq.com',
- 'Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7',
- "사용자 에이전트: Mozilla/5.0(Windows; U; Windows NT 5.1 ; zh-CN; rv:1.9.0.9) Gecko/2009040821 Firefox/3.0.9 FirePHP/0.2.4",
- ),
- );
-
- $data = $this->curlFunc($openEmail);
- if (preg_match('|Set-Cookie:qqmail_activated=0|i', $data['html'])) {
- $param['active'] = true;
- $param['cookie'] = $param['cookie'] .'; qqmail_활성화=0; qqmail_alias=';
- }
- return $param;
- }
-
- /**
- *
- * 친구 데이터 가져오기
- *
- * @param $param = array(
- * sid=>String, //사용자 인증의 고유 식별자
- * login = > ; Boolean, //로그인에 성공하면 true, 실패하면 false
- * server_no => String // 서버 번호
- * Boolean //로그인이 활성화되면 false 이메일이 활성화되지 않은 경우
- * cookie = > String // 데이터 쿠키 가져오기
- *
- * )
- * @return Array(
- * key=>value, // 키: qq 번호, 값: 닉네임
- * );*/
- function getFriends($param)
- {
-
- $friend = array(
- 'url'=> ;'http://'.$param['server_no'].'.mail.qq.com/cgi-bin/addr_listall?type=user&&category=all&sid='.$param['sid'],
- ' 헤더' => true,
- '쿠키' => $param['cookie'],
- '추천자' => addr_listall?sid='.$param['sid'].'&sorttype=null&category=common',
- 'httpheader'=>array(
- "호스트: " . $param['server_no'] . ' .mail.qq.com',
- 'Accept-Charset:utf-8;q=0.7,*;q=0.7',
- "사용자 에이전트: Mozilla/5.0(Windows; U; Windows NT 5.1 ; zh-CN; rv:1.9.0.9) Gecko/2009040821 Firefox/3.0.9 FirePHP/0.2.4",
- ),
- );
- $r = $this->curlFunc($friend);
- if ($r['http_code'] != 200) {
- $this->error($r);
- false를 반환합니다.
- }
- $data = $r['html'];
- $preg = preg_match_all('|
] /> ([^<] ) |i', $data, $temp_list);
- if ($preg == 0) return array();
- $list = array_combine($temp_list[1],$temp_list[2]);
- $list를 반환합니다.
- }
-
- /**
- * 오류 표시
- *
- * @param $str array
- *
- * @return
- */
- 함수 오류($str) {
- $str['html'] = str_replace('script','', $str ['html']);
- var_dump($str);
- 종료;
- }
- }
- ?>
-
-
复代码
>>> 更多 php模拟登录 文章,专题链接:php模拟登录 php 컬模拟登录教程大전체
|