`

php模拟登录qq邮箱(curl命令详解)

    博客分类:
  • PHP
阅读更多
<?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号&aliastype=@qq.com&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';	
}
?>

 

分享到:
评论

相关推荐

    curl命令详解curl命令详解curl命令详解curl命令详解

    curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令...

    php CURL 命令详解

    curl命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解...

    curl命令详解 curl命令详解 curl命令详解 curl命令详解curl命令详解 curl命令详解 curl命令详解

    curl 命令详解 curl 命令是一种强大的命令行工具,用于传输数据规范的命令行工具,支持包括 HTTP、HTTPS、SCP、SFTP、TFTP 等多种协议。该命令可以用来下载和上传文件、查看 HTTP 头信息、设置 Cookie 和代理服务器...

    PHP CURL QQ好友邀请 QQ邮箱登录

    总的来说,通过PHP和cURL实现QQ邮箱登录并邀请好友是一个涉及网络编程、模拟登录、数据抓取和API交互的综合实践,需要对HTTP协议、Web自动化以及腾讯的相关API有深入理解。在压缩包中的"qq"文件可能是代码示例,...

    课程资源PHP curl命令详解

    curl命令详解

    curl命令详解资源合集完整版

    curl命令详解 url命令是⼀个功能强⼤的⽹络⼯具,它能够通过http、ftp等⽅式下载⽂件,也能够上传⽂件。其实curl远不⽌前⾯所说的那些功能,⼤家可以通过man curl阅读⼿册页获取更多的信息。类似的⼯具还有wget。...

    curl命令详解.docx

    curl命令详解

    curl命令详解.zip

    curl命令详解 curl 是一个命令行工具,用于向网络服务器发送 HTTP 请求并获取响应。它可以执行各种 HTTP 操作,如 GET、POST、PUT、DELETE 等,并支持许多不同的协议,如 FTP、SMTP、POP3、IMAP 等。 总的来说,...

    curl命令详解教程1

    curl命令详解

    curl命令详解,curl命令

    curl 命令详解 curl 命令是一种功能强大且灵活的命令行工具,用于传输数据指定的 URL。它支持包括 HTTP、HTTPS、FTP、FTPS、SCPV、TFTP 等多种协议。下面是对 curl 命令的一些常用参数的详细解释: 调试类 * -v, ...

    PHP CURL 新浪好友邀请邮箱登录

    总之,通过结合PHP和cURL,我们可以实现对新浪邮箱的模拟登录和好友邀请功能,尽管新浪邮箱可能并非主流选择,但这个过程可以作为学习网络请求和Web服务交互的一个实例,对于理解Web开发中的认证和数据交换具有重要...

    curl命令详解具体课程.txt

    curl命令详解

    curl命令详解(生成方法)

    curl命令详解 Curl是一款非常实用的数据传输工具,它支持多种协议,例如HTTP、FTP、SMTP等,可以通过命令行或脚本等方式使用。如果你需要访问指定的URL地址,只需要使用基本语法curl [options] [URL]即可。Curl还...

    通过CURL命令实现模拟登陆

    使用CURL进行模拟登陆,在一些自动化场景中,相关脚本部署在Linux上,并且是命令行的操作方式,模拟页面的操作基本无法实现,本例使用curl模拟http请求,实现浏览器操作

    curl命令详解使用文档

    `-d`参数可以用来模拟POST请求,将表单数据传送到服务器,同时可以结合`-b`或`-c`选项保存和使用cookie信息,实现模拟登录。 3. 断点续传。如果下载过程中中断,可以使用`-C`参数从上次中断的位置继续下载。 4. ...

    curl日常使用命令详解

    curl命令详解

    curl命令详解.pdf

    本篇文章将深入解析`curl`命令的一些主要参数和功能。 ### 1. 参数详解 #### (1) 显示帮助与手册 - `-M/--manual`: 显示完整的用户手册。 - `-h/--help`: 显示简短的帮助信息。 #### (2) 用户名和密码管理 - `-n/...

    php利用curl模拟登录

    该资源通过具体实例模拟页面登录。curl使用基本过程:第一步:使用curl_init()进行初始化,第二步:使用curl_setopt()函数进行设置选项,第三步:使用curl_exec&#40;$curl&#41;进行执行事务,第四步:curl_close()...

    超全的curl命令详解文档集.zip

     一,curl命令参数,有好多我没有用过,如果有误的地方,还请指正。  -a/--append 上传文件时,附加到目标文件  -A/--user-agent &lt;string&gt; 设置用户代理发送给服务器  - anyauth 可以使用“任何”身份验证...

Global site tag (gtag.js) - Google Analytics