>  기사  >  백엔드 개발  >  PHP는 QQ 메일박스에 대한 로그인을 시뮬레이션합니다(curl 명령에 대한 자세한 설명).

PHP는 QQ 메일박스에 대한 로그인을 시뮬레이션합니다(curl 명령에 대한 자세한 설명).

WBOY
WBOY원래의
2016-07-25 09:03:561795검색
  1. header("Content-type:text/html;charset=utf-8");

  2. $cookie_file = dirname(__FILE__)."/cookie_".md5(basename(__FILE__)).".txt"; // 쿠키 파일 저장 경로 및 파일명 설정
  3. function vlogin($url,$data) { // 쿠키 기능을 얻기 위해 로그인 시뮬레이션
  4. $curl =curl_init(); // CURL 세션 시작
  5. curl_setopt($curl, CURLOPT_URL, $url) //접속할 주소
  6. curl_setopt ($curl , CURLOPT_SSL_VERIFYPEER, 0); // 인증서 원본 확인
  7. 컬_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1) // 인증서에서 SSL 암호화 알고리즘이 존재하는지 확인
  8. 컬_setopt($curl , CURLOPT_USERAGENT, $_SERVER ['HTTP_USER_AGENT']); // 사용자가 사용하는 브라우저를 시뮬레이션합니다.
  9. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1) //자동 점프 사용
  10. curl_setopt($curl, CURLOPT_AUTOREFERER, 1 ); // 자동으로 추천인 설정
  11. cur_setopt($curl, CURLOPT_POST, 1); // 일반 게시물 요청 보내기
  12. 컬_setopt($curl, CURLOPT_POSTFIELDS, $data) // 제출된 데이터 패키지
  13. curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']); //쿠키 정보를 저장할 파일 이름
  14. curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']) //저장된 쿠키 정보를 읽습니다. 위
  15. 컬_setopt($curl, CURLOPT_TIMEOUT, 30); // 무한 루프를 방지하기 위해 시간 초과 제한을 설정합니다.
  16. 컬_setopt($curl, CURLOPT_HEADER, 0) // 반환된 헤더 영역의 내용을 표시합니다.
  17. 컬_setopt ($curl, CURLOPT_RETURNTRANSFER, 1); // 얻은 정보를 파일 스트림 형태로 반환합니다.
  18. $tmpInfo = cur_exec($curl) // 작업을 실행합니다.
  19. if (curl_errno($curl) ) {
  20. echo 'Errno'.curl_error($curl);
  21. }
  22. cur_close($curl); // CURL 세션 닫기
  23. return $tmpInfo; 🎜>
  24. function vget( $url){ // 콘텐츠 획득 기능 시뮬레이션
  25. $curl =curl_init(); // CURL 세션 시작
  26. curl_setopt($curl, CURLOPT_URL, $url); / 접속할 주소
  27. cur_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0); // 인증서 원본 확인
  28. cur_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1) // SSL 암호화 알고리즘 존재 여부 확인; 인증서에서
  29. 컬_setopt($curl, CURLOPT_USERAGENT , $_SERVER['HTTP_USER_AGENT']) // 사용자가 사용하는 브라우저를 시뮬레이션합니다.
  30. 컬_setopt($curl, CURLOPT_FOLLOWLOCATION, 1) // 자동 점프 사용
  31. 컬_setopt($curl, CURLOPT_AUTOREFERER, 1); // 자동으로 리퍼러 설정
  32. 컬_setopt($curl, CURLOPT_HTTPGET, 1) // 일반 게시물 요청 보내기
  33. 컬_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS[ 'cookie_file']); // 위 저장된 쿠키 정보 읽기
  34. curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 무한 루프를 방지하기 위해 시간 초과 제한 설정
  35. 컬_setopt($curl, CURLOPT_HEADER, 0); / 반환된 Header 영역 내용 표시
  36. cur_setopt($curl, CURLOPT_RETURNTRANSFER, 1) // 얻은 정보를 파일 스트림 형태로 반환합니다.
  37. $tmpInfo = cur_exec($curl); 연산
  38. if (curl_errno($curl)) {
  39. echo 'Errno'.curl_error($curl);
  40. }
  41. 컬_close($curl); // CURL 세션 종료
  42. return $ tmpInfo; // 데이터 반환
  43. }
  44. function vpost($url,$data){ // 데이터 제출 시뮬레이션
  45. $curl = curl_init() // CURL 세션 시작
  46. curl_setopt($curl, CURLOPT_URL, $url); //접속할 주소
  47. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0) //인증서 원본 확인
  48. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST , 1); // 인증서에서 SSL 암호화 알고리즘이 존재하는지 확인
  49. 컬_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']) // 사용자가 사용하는 브라우저 시뮬레이션
  50. 컬_setopt($ 컬, CURLOPT_FOLLOWLOCATION, 1); // 자동 점프 사용
  51. 컬_setopt( $curl, CURLOPT_AUTOREFERER, 1); // 자동으로 참조자 설정
  52. 컬_setopt($curl, CURLOPT_POST, 1); <… cur_setopt($curl, CURLOPT_TIMEOUT, 30); // 시간 초과 제한을 설정하면 무한 루프가 방지됩니다.
  53. cur_setopt($curl, CURLOPT_HEADER, 0) // 반환된 헤더 영역 내용 표시
  54. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1 ); // 얻은 정보는 파일 스트림 형태로 반환됩니다.
  55. $tmpInfo = cur_exec($curl); // 작업 수행
  56. if (curl_errno($curl)) {
  57. echo 'Errno '.curl_error($curl);
  58. }
  59. curl_close ($curl); // 키 CURL 세션
  60. return $tmpInfo; // 데이터 반환
  61. }

  62. < ;p>function delcookie($cookie_file){ // 쿠키 삭제 함수
  63. @unlink($cookie_file) // 삭제 수행
  64. }

  65. function readcookies( $file)

  66. {
  67. $result = null;
  68. $fp = fopen( $file, "r" );
  69. if($fp)
  70. {
  71. while ( !feof( $fp ) )
  72. {
  73. $buffer = fgets( $fp, 4096 );
  74. $result = $buffer;
  75. //$tmp = @split( "/t", $buffer );
  76. //$result[@trim( $tmp[5] )] = @trim( $tmp[6] );
  77. }
  78. fclose($fp);
  79. }
  80. return $result;
  81. }
  82. $url = 'http://w.mail.qq. com/cgi-bin/loginpage?f=xhtml';
  83. if(!file_exists($cookie_file)) { // 쿠키가 있는지 확인
  84. $str = vget($url); // 제출물 가져오기 background
  85. preg_match("/action="([^"]*?)"/isU",$str,$hash); // 로그인 랜덤값 추출
  86. print_r($hash[1]);
  87. vlogin($hash[1],'&f=xhtml&uin=your qq number&aliastype=@qq.com&pwd=qq number 비밀번호&mss=1') // 쿠키를 얻으려면 로그인하세요

  88. }

  89. else
  90. {
  91. vget("http://w30.mail.qq.com/cgi-bin/today?sid=ggQq2H-cUHdDdHs0z6rT6vN8,4,z-yTNgDwU&first=1");
  92. echo '쿠키 생성됨';>

코드 복사
>>> PHP에 대한 추가 정보 시뮬레이션된 로그인에 대한 기사는 주제 링크를 참조하십시오: php 시뮬레이션된 로그인 php 컬 시뮬레이션된 로그인 튜토리얼

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.