-
-
include "include/http.class.php";
- $http = new http(1);
- $html = $http->get('http://check.ptlogin2.qq.com/check?uin=QQ账号&appid=15004501&r='.Math.rand(),1);
- $pattern = '/ '.preg_quote("ptui_checkVC('0','",'/').'(.*?)'.preg_quote("',",'/').'/i';
- preg_match ( $ 패턴,$html, $matches);
- $yzm = $matches[1];
- $pattern = '/'.preg_quote("'x",'/').'(.*?)' .preg_quote("');",'/').'/i';
- preg_match( $pattern,$html, $matches);
- $yzmt = 'x'.$matches[1];
- $http -> get("http://ptlogin2.qq.com/login?u=QQ账号&p=".jspassword("QQ密码",$yzm,$yzmt)."&verifycode=".$yzm."&aid=15004501&u1= http://ctc.qzs.qq.com/ac/qzone/login/succ.html?para=toolbar&h=1&ptredirect=0&ptlang=2052&from_ui=1&dumy=&fp=loginerroralert&mibao_css=&t=1&g=1");
- 함수 jspassword($p, $vc, $vt) {
- $p = strtoupper(md5($p));
- for ($i = 0; $i return strtoupper(md5(strtoupper(md5(hex2asc($temp) . hex2asc($vt))) . $vc));
- }
- 함수 hex2asc($str) {
- $str = Join('',Explode('x', $str));
- for ($i = 0;$i return $data;
- }
复代码
아래와 같습니다.
http.class.php 파일 코드:
-
-
// -------------------------- ------------------
- // | ThinkPHP [ 우리는 할 수 있어요 그냥 생각하세요 ]
- // ---------------------- ----------------------
- // | Copyright (c) 2009 http://thinkphp.cn All Rights Reserved.
- // ---------------- ---------------
- // | 라이센스 부여됨( http://www.apache.org/licenses/LICENSE-2.0 )
- // -------------- -----------------
- // | 작성자: liu21st
- // ---------------------------------- -----------------------
- // $Id$
-
- /**
- ---------------------------------- ---------------------
- * Http 도구 클래스
- * 일련의 Http 도구 제공 방법
- ---------------------------------- --- -------------
- * @category ORG
- * @package ORG
- * @subpackage Net
- * @author liu21st
- * @version $Id$
- ----------------------- ------------------------------------- -----
- */
- 클래스 Http
- {//类定义开始
-
- /**
- ---------------------------------- ----------
- * 원격 파일 수집
- ------------- ---- ---------
- * @access public
- ---------- -------- ----------------
- * @param string $ 원격 원격 파일명
- * @param string $local 로컬 저장 파일명
- -------------- --- ------------------
- * @return 혼합
- ------- -- ------------------------------------------------ -
- */
- 정적 공개 함수 컬_다운로드($remote,$local) {
- $cp = 컬_init($remote);
- $fp = fopen($local,"w");
- 컬_setopt($cp, CURLOPT_FILE, $fp);
- 컬_setopt($cp , CURLOPT_HEADER, 0);
- 컬_exec($cp);
- 컬_close($cp);
- fclose($fp);
- }
-
- /**
- ---------------------------------- -----------
- * 파일 다운로드
- * 다운로드 시 표시되는 파일명을 지정하고, 해당 헤더 정보를 자동으로 전송할 수 있습니다.
- * content 매개변수가 지정된 경우 이 파일을 다운로드합니다. 매개변수 내용
- -------------------------------- -------------
- * @static
- * @access public
- -------- ----- -----------
- * @param string $ filename 다운로드 파일 이름
- * @param string $showname 표시된 파일 이름 다운로드
- * @param string $content 다운로드된 콘텐츠
- * @param 정수 $expire 다운로드 콘텐츠 브라우저 캐시 시간
- ----- -- ------------------------------------------------ -- -
- * @return void
- ------------------------ -------- -----
- * @throws ThinkExecption
- -------------- ------------ ------------------------- --
- * /
- 정적 공개 함수 다운로드 ($filename, $showname='',$content='',$expire=180) {
- if(is_file($filename)) {
- $length = filesize( $filename);
- }elseif(is_file(UPLOAD_PATH.$filename)) {
- $filename = UPLOAD_PATH.$filename;
- $length = filesize($filename);
- }elseif($content != '') {
- $length = strlen($content);
- }else {
- throw_Exception($filename.L('下载文件不存재!'));
- }
- if(empty($showname)) {
- $showname = $filename;
- }
- $showname = basename($showname);
- if( !empty($filename)) {
- $type = mime_content_type($filename);
- }else{
- $type = "application/octet-stream";
- }
- //发送Http Header信息 开始下载
- header("Pragma: public");
- header("Cache-control: max-age=".$expire);
- //header('Cache-Control: no -store, no-cache, must-revalidate');
- header("만료: " . gmdate("D, d M Y H:i:s",time() $expire) . "GMT");
- header("최종 수정: " . gmdate("D, d M Y H:i:s",time()) . "GMT");
- header("콘텐츠 처리: attachment; filename=".$ showname);
- header("Content-Length: ".$length);
- header("Content-type: ".$type);
- header('Content-Encoding: none');
- header("콘텐츠 전송 인코딩: 바이너리" );
- if($content == '' ) {
- readfile($filename);
- }else {
- echo($content );
- }
- 종료();
- }
-
- /**
- ---------------------------------- ----------
- * HTTP 헤더 정보 표시
- --------------- - ---------------------------------
- * @return 문자열
- ------- --- --------------
- */
- 정적 함수 get_header_info($header='',$echo=true)
- {
- ob_start();
- $headers = getallheaders();
- if(!empty($header)) {
- $info = $headers[$header];
- echo ($header.':'.$info."n"); ;
- }else {
- foreach($headers as $key=>$val) {
- echo("$key:$valn");
- }
- }
- $ 출력 = ob_get_clean();
- if ($echo) {
- echo (nl2br($output));
- }else {
- return $output;
- }
-
- }
-
- /**
- * HTTP 프로토콜 정의 상태 코드
- * @param int $num
- */
- static function send_http_status($code) {
- static $_status = array(
- // 정보 1xx
- 100 => ' 계속',
- 101 => '프로토콜 전환',
-
- // 성공 2xx
- 200 => '확인',
- 201 => 202 => '승인',
- 203 => '신뢰할 수 없는 정보',
- 204 => '콘텐츠 없음',
- 205 => => '부분 콘텐츠',
-
- // 리디렉션 3xx
- 300 => '복수 선택',
- 301 => '영구적으로 이동됨',
- 302 => 발견', // 1.1
- 303 => '기타 보기',
- 304 => '수정되지 않음',
- 305 => '프록시 사용',
- // 306은 더 이상 사용되지 않지만 예약되었습니다
- 307 => '임시 리디렉션',
-
- // 클라이언트 오류 4xx
- 400 => '잘못된 요청',
- 401 => '무단',
- 402 => '결제 필수',
- 403 => '금지',
- 404 => '찾을 수 없음',
- 405 => '허용되지 않는 메소드',
- 406 => '허용되지 않음',
- 407 => '프록시 인증 필요',
- 408 => '요청 시간 초과',
- 409 => '갈등',
- 410 => '사라지다',
- 411 => '필요한 길이',
- 412 => '전제조건 실패',
- 413 => '요청 엔터티가 너무 큼',
- 414 => '요청-URI가 너무 김',
- 415 => '지원되지 않는 미디어 유형',
- 416 => '요청한 범위가 만족스럽지 않습니다.',
- 417 => '예상 실패',
-
- // 서버 오류 5xx
- 500 => '내부 서버 오류',
- 501 => '구현되지 않음',
- 502 => '나쁜 게이트웨이',
- 503 => '서비스 이용 불가',
- 504 => '게이트웨이 시간 초과',
- 505 => 'HTTP 버전은 지원되지 않습니다',
- 509 => '대역폭 제한 초과'
- );
- if(array_key_exists($code,$_status)) {
- header('HTTP/1.1 '.$code.' '.$_status[$code]);
- }
- }
- }//类定义结束
- if( !function_exists ('mime_content_type')) {
- /**
- ---------------------------------- ----------
- * 파일의 mime_content 유형을 가져옵니다
- ------------- - ---------------------
- * @return 문자열
- ----- ---- --------------------------------- ----
- */
- function mime_content_type($filename)
- {
- static $contentType = array(
- 'ai' => 'application/postscript',
- 'aif' => 'audio/x-aiff',
- 'aifc' => 'audio/x-aiff' ,
- 'aiff' => 'audio/x-aiff',
- 'asc' => 'application/pgp', //skwashd에 의해 변경됨 - 이전에는 text/plain
- 'asf' = > '비디오/x-ms-asf',
- 'asx' => '비디오/x-ms-asf',
- 'au' => '오디오/기본' avi' => '비디오/x-msvideo',
- 'bcpio' => 'application/x-bcpio',
- 'bin' => '응용 프로그램/옥텟-스트림',
- 'bmp' => '이미지/bmp',
- 'c' => 'text/plain', // 또는 'text/x-csrc', //skwashd에 의해 추가됨
- 'cc' = > 'text/plain', // 또는 'text/x-c src', //skwashd에 의해 추가됨
- 'cs' => 'text/plain', //skwashd에 의해 추가됨 - C#의 경우 src
- 'cpp' => 'text/x-c src', //skwashd에 의해 추가됨
- 'cxx' => 'text/x-c src', //skwashd에 의해 추가됨
- 'cdf' => 'application/x-netcdf',
- '클래스' => 'application/octet-stream',//보안되지만 application/java-class는 정확합니다
- 'com' => 'application/octet-stream',//skwashd에 의해 추가됨
- 'cpio' => 'application/x-cpio',
- 'cpt' => 'application/mac-compactpro',
- 'csh' => 'application/x-csh',
- 'css' => '텍스트/css',
- 'csv' => '텍스트/쉼표로 구분된 값',//skwashd에 의해 추가됨
- 'dcr' => 'application/x-director',
- 'diff' => '텍스트/비교',
- 'dir' => 'application/x-director',
- 'dll' => '애플리케이션/옥텟-스트림',
- 'dms' => '응용 프로그램/옥텟-스트림',
- 'doc' => '응용 프로그램/msword',
- '점' => 'application/msword',//skwashd에 의해 추가됨
- 'dvi' => 'application/x-dvi',
- 'dxr' => 'application/x-director',
- 'eps' => '응용프로그램/포스트스크립트',
- 'etx' => 'text/x-setext',
- 'exe' => '애플리케이션/옥텟-스트림',
- 'ez' => 'application/andrew-inset',
- 'gif' => '이미지/gif',
- 'gtar' => 'application/x-gtar',
- 'gz' => 'application/x-gzip',
- 'h' => 'text/plain', // 또는 'text/x-chdr',//skwashd에 의해 추가됨
- 'h ' => 'text/plain', // 또는 'text/x-c hdr', //skwashd에 의해 추가
- 'hh' => 'text/plain', // 또는 'text/x-c hdr', //skwashd에 의해 추가
- 'hpp' => 'text/plain', // 또는 'text/x-c hdr', //skwashd에 의해 추가
- 'hxx' => 'text/plain', // 또는 'text/x-c hdr', //skwashd에 의해 추가
- 'hdf' => 'application/x-hdf',
- 'hqx' => 'application/mac-binhex40',
- 'htm' => '텍스트/html',
- 'html' => 'text/html',
- '얼음' => 'x-conference/x-cooltalk',
- 'ics' => '문자/캘린더',
- 'ief' => '이미지/ief',
- 'ifb' => '텍스트/캘린더',
- 'iges' => '모델/iges',
- 'igs' => '모델/iges',
- '병' => 'application/x-jar', //skwashd에 의해 추가 - 대체 MIME 유형
- 'java' => 'text/x-java-source', //skwashd에 의해 추가됨
- 'jpe' => '이미지/jpeg',
- 'jpeg' => '이미지/jpeg',
- 'jpg' => '이미지/jpeg',
- 'js' => 'application/x-javascript',
- 'kar' => '오디오/미디',
- '라텍스' => 'application/x-latex',
- 'lha' => '애플리케이션/옥텟-스트림',
- '로그' => '텍스트/일반',
- 'lzh' => '응용프로그램/옥텟-스트림',
- 'm3u' => 'audio/x-mpegurl',
- '남자' => 'application/x-troff-man',
- '나' => 'application/x-troff-me',
- 'mesh' => '모델/메시',
- '중간' => '오디오/미디',
- '미디' => '오디오/미디',
- 'mif' => 'application/vnd.mif',
- 'mov' => '동영상/퀵타임',
- '영화' => 'video/x-sgi-movie',
- 'mp2' => '오디오/mpeg',
- 'mp3' => '오디오/mpeg',
- 'mpe' => '비디오/mpeg',
- 'mpeg' => '비디오/mpeg',
- 'mpg' => '비디오/mpeg',
- 'mpga' => '오디오/mpeg',
- 'ms' => 'application/x-troff-ms',
- 'msh' => '모델/메시',
- 'mxu' => 'video/vnd.mpegurl',
- 'nc' => 'application/x-netcdf',
- 'oda' => '애플리케이션/오다',
- '패치' => '텍스트/차이점',
- 'pbm' => 'image/x-portable-bitmap',
- 'pdb' => '화학/x-pdb',
- 'pdf' => '응용프로그램/pdf',
- 'pgm' => 'image/x-portable-graymap',
- 'pgn' => 'application/x-chess-pgn',
- 'pgp' => 'application/pgp',//skwashd에 의해 추가됨
- 'php' => 'application/x-httpd-php',
- 'php3' => 'application/x-httpd-php3',
- 'pl' => 'application/x-perl',
- 'pm' => 'application/x-perl',
- 'png' => '이미지/png',
- 'pnm' => 'image/x-portable-anymap',
- 'po' => '텍스트/일반',
- 'ppm' => 'image/x-portable-pixmap',
- 'ppt' => 'application/vnd.ms-powerpoint',
- 'ps' => '응용 프로그램/포스트스크립트',
- 'qt' => '동영상/퀵타임',
- 'ra' => 'audio/x-realaudio',
- 'rar'=>'application/octet-stream',
- 'ram' => 'audio/x-pn-realaudio',
- 'ras' => 'image/x-cmu-raster',
- 'rgb' => '이미지/x-rgb',
- 'rm' => 'audio/x-pn-realaudio',
- 'roff' => 'application/x-troff',
- 'rpm' => 'audio/x-pn-realaudio-plugin',
- 'rtf' => '텍스트/rtf',
- 'rtx' => '텍스트/리치텍스트',
- 'sgm' => '텍스트/sgml',
- 'sgml' => 'text/sgml',
- 'sh' => 'application/x-sh',
- 'shar' => 'application/x-shar',
- 'shtml' => 'text/html',
- '사일로' => '모델/메시',
- '앉아' => 'application/x-stuffit',
- 'skd' => 'application/x-koan',
- 'skm' => 'application/x-koan',
- 'skp' => 'application/x-koan',
- 'skt' => 'application/x-koan',
- 'smi' => '애플리케이션/smil',
- 'smil' => '애플리케이션/smil',
- 'snd' => '오디오/기본',
- '그래서' => '응용 프로그램/옥텟-스트림',
- 'spl' => 'application/x-futuresplash',
- 'src' => 'application/x-wais-source',
- 'stc' => 'application/vnd.sun.xml.calc.template',
- 'std' => 'application/vnd.sun.xml.draw.template',
- 'sti' => 'application/vnd.sun.xml.impress.template',
- 'stw' => 'application/vnd.sun.xml.writer.template',
- 'sv4cpio' => 'application/x-sv4cpio',
- 'sv4crc' => 'application/x-sv4crc',
- 'swf' => 'application/x-shockwave-flash',
- 'sxc' => 'application/vnd.sun.xml.calc',
- 'sxd' => 'application/vnd.sun.xml.draw',
- 'sxg' => 'application/vnd.sun.xml.writer.global',
- 'sxi' => 'application/vnd.sun.xml.impress',
- 'sxm' => 'application/vnd.sun.xml.math',
- 'sxw' => 'application/vnd.sun.xml.writer',
- 't' => 'application/x-troff',
- 'tar' => 'application/x-tar',
- 'tcl' => 'application/x-tcl',
- 'tex' => 'application/x-tex',
- 'texi' => 'application/x-texinfo',
- 'texinfo' => 'application/x-texinfo',
- 'tgz' => 'application/x-gtar',
- 'tif' => '이미지/tiff',
- 'tiff' => 'image/tiff',
- 'tr' => 'application/x-troff',
- 'tsv' => '텍스트/탭으로 구분된 값',
- 'txt' => '텍스트/일반',
- 'ustar' => 'application/x-ustar',
- 'vbs' => 'text/plain', //skwashd에 의해 추가됨 - 분명한 이유로
- 'vcd' => 'application/x-cdlink',
- 'vcf' => 'text/x-vcard',
- 'vcs' => '문자/캘린더',
- 'vfb' => '문자/캘린더',
- 'vrml' => '모델/vrml',
- 'vsd' => 'application/vnd.visio',
- 'wav' => '오디오/x-wav',
- '왁스' => '오디오/x-ms-wax',
- 'wbmp' => 'image/vnd.wap.wbmp',
- 'wbxml' => 'application/vnd.wap.wbxml',
- 'wm' => '비디오/x-ms-wm',
- 'wma' => '오디오/x-ms-wma',
- 'wmd' => 'application/x-ms-wmd',
- 'wml' => 'text/vnd.wap.wml',
- 'wmlc' => 'application/vnd.wap.wmlc',
- 'wmls' => 'text/vnd.wap.wmlscript',
- 'wmlsc' => 'application/vnd.wap.wmlscriptc',
- 'wmv' => '비디오/x-ms-wmv',
- 'wmx' => '비디오/x-ms-wmx',
- 'wmz' => 'application/x-ms-wmz',
- 'wrl' => '모델/vrml',
- 'wvx' => '동영상/x-ms-wvx',
- 'xbm' => '이미지/x-xbitmap',
- 'xht' => 'application/xhtml xml',
- 'xhtml' => 'application/xhtml xml',
- 'xls' => 'application/vnd.ms-excel',
- 'xlt' => 'application/vnd.ms-excel',
- 'xml' => 'application/xml',
- 'xpm' => '이미지/x-xpixmap',
- 'xsl' => 'text/xml',
- 'xwd' => '이미지/x-xwindowdump',
- 'xyz' => '화학물질/x-xyz',
- 'z' => 'application/x-compress',
- 'zip' => 'application/zip',
- );
- $type = strtolower(substr(strrchr($filename, '.'),1));
- if(isset($contentType[$type])) {
- $mime = $contentType[$type];
- }else {
- $mime = 'application/octet-stream';
- }
- return $mime;
- }
- }
-
- if(!function_exists('image_type_to_extension'))
- {
- function image_type_to_extension($imagetype)
- {
- if(empty($imagetype)) return false;
- 스위치($imagetype)
- {
- 케이스 IMAGETYPE_GIF : '.gif' 반환;
- 케이스 IMAGETYPE_JPEG : '.jpg' 반환;
- 케이스 IMAGETYPE_PNG : '.png' 반환;
- 사례 IMAGETYPE_SWF : '.swf' 반환;
- 사례 IMAGETYPE_PSD : '.psd' 반환;
- 사례 IMAGETYPE_BMP : '.bmp' 반환;
- 사례 IMAGETYPE_TIFF_II : '.tiff' 반환;
- 사례 IMAGETYPE_TIFF_MM : '.tiff' 반환;
- 케이스 IMAGETYPE_JPC : '.jpc' 반환;
- 케이스 IMAGETYPE_JP2 : '.jp2' 반환;
- 케이스 IMAGETYPE_JPX : '.jpf';
- 케이스 IMAGETYPE_JB2 : return '.jb2';
- 케이스 IMAGETYPE_SWC : '.swc' 반환;
- 케이스 IMAGETYPE_IFF : '.aiff' 반환;
- 케이스 IMAGETYPE_WBMP : '.wbmp' 반환;
- 케이스 IMAGETYPE_XBM : ' 반환 .xbm';
- 기본값: false 반환;
- }
- }
-
- }
-
- ?>
复system代码
>>> 더 많은 php模拟登录 文章,专题链接:php模拟登录 phpcur模拟登录教程大전체
|