获取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
<br>
<?php <br />
define( "COOKIEJAR", tempnam( ini_get( "upload_tmp_dir" ), "cookie" ) ); //定义COOKIES存放的路径,要有操作的权限<br>
define( "TIMEOUT", 1000 ); //超时设定<br>
error_reporting(E_ALL);<br>
class MSN<br>
{<br>
<br>
function getAddressList($username, $password)<br>
{ <br>
//第一步:模拟抓取登入页面的数据,并记下cookies<br>
$cookies = array();<br>
$ch = curl_init();<br>
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);<br>
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");<br>
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);<br>
curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);<br>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br>
$str = curl_exec($ch); <br>
curl_close($ch);<br>
<br>
//数据文件 模拟JS生成的cookie<br>
$CkTst = 'G'.time() * 1000;<br>
$wlidperf = "throughput=3&latency=948&FR=L&ST=".(time() * 1000 + 1254);<br>
$fp = fopen(COOKIEJAR, "a+");<br>
$str_new = "login.live.com\tTRUE\t/\tFALSE\t0\tCkTst\t$CkTst\r\n";<br>
$str_new .= "login.live.com\tTRUE\t/\tFALSE\t0\twlidperf\t$wlidperf\r\n";<br>
fwrite($fp,$str_new);<br>
fclose($fp);<br>
<br>
//参数的分析<br>
$matches = array(); <div class="clear">
</div>
Copy after login