获取msn(hotmail)邮箱好友同步更新版2011-8
本帖最后由 hudie631489527 于 2011-08-25 09:01:51 编辑 去年做的msn(hotmail), gmail, yahoo三个模拟登录,现在msn已经失效了
在csdn论坛关注的朋友比较多,工作上也需要这个,所以再次拿起http分析工具一窥究竟
这次分析发现,msn让人哭笑不得,他们在最后一步登录时,对cookie有检测,检测cookie是在正常不过的
只是他这次检测多余的cookie,如果有多余的cookie就直接将俺请出,无奈之下,只能在最后一步按他们的要求来筛选他们需要的cookie
好了,上代码了(基本上跟上次是差不多的,只是中间多了一个cookie的筛选)
我的博客:www.onlypo.com
define( cookiejar, tempnam( ini_get( upload_tmp_dir ), cookie ) ); //定义cookies存放的路径,要有操作的权限
define( timeout, 1000 ); //超时设定
error_reporting(e_all);
class msn
{
function getaddresslist($username, $password)
{
//第一步:模拟抓取登入页面的数据,并记下cookies
$cookies = array();
$ch = curl_init();
curl_setopt($ch, curlopt_ssl_verifypeer, false);
curl_setopt($ch, curlopt_url, http://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=.time().&rver=6.1.6206.0&wp=mbi&wreply=http:%2f%2fmail.live.com%2fdefault.aspx&lc=2052&id=64855&mkt=zh-cn&cbcxt=mail&snsc=1);
curl_setopt($ch, curlopt_cookiejar, cookiejar);
curl_setopt($ch, curlopt_timeout, timeout);
curl_setopt($ch, curlopt_returntransfer, true);
$str = curl_exec($ch);
curl_close($ch);
//数据文件 模拟js生成的cookie
$cktst = 'g'.time() * 1000;
$wlidperf = throughput=3&latency=948&fr=l&st=.(time() * 1000 + 1254);
$fp = fopen(cookiejar, a+);
$str_new = login.live.com\ttrue\t/\tfalse\t0\tcktst\t$cktst\r\n;
$str_new .= login.live.com\ttrue\t/\tfalse\t0\twlidperf\t$wlidperf\r\n;
fwrite($fp,$str_new);
fclose($fp);
//参数的分析
$matches = array();