第三方飞信抓包分析和实现

第三方飞信抓包分析和实现

作者:linger

源代码地址:http://vdisk.weibo.com/s/9B45G

另一篇《第三方飞信设计思路(php实现)》http://blog.csdn.net/linger2012liu/article/details/7799420

     用curl实现get或者post方法,用simplehtmldom这个第三方写的php类来解析html文件。

登陆:


$postData = array(

                   'm'=>$m,

                   'pass'=> $pass,

                   'checkCode'=>$checkCode,

                   'codeKey'=>$codeKey

                   );

                   do{   

                            $curl=

                                     curl_init('http://f.10086.cn/im5/login/loginHtml5.action');//登录post

                                     //curl_init('http://f.10086.cn/im5/login/cklogin.action');

                            curl_setopt($curl,CURLOPT_HEADER,0);

                            curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//curl_exec返回的字符串而不是简单的true false

                            curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie);

                            curl_setopt($curl,CURLOPT_POST,1);

                            curl_setopt($curl,CURLOPT_POSTFIELDS,$postData);//竟然真的去掉http_build_query就可以了

                            $result= curl_exec($curl);

                            //print_r($result);//结果输出

                            curl_close($curl);

                   }while($result== false);

-------------------------------------------------------------------------------------------------------------------------------

 

--

获取首页信息(包含小组信息):


do

                   {

                            $curl=

                                     curl_init('http://f.10086.cn/im5/index/html5.action');//get获取首页信息

                   curl_setopt($curl,CURLOPT_COOKIEFILE,$cookie);

                   curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie);

                   curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);

                   $result= curl_exec($curl);

                   curl_close($curl);

 

                   }while($result == false);

-------------------------------------------------------------------------------------------------------------------------------

 

获取好友信息,循环实现,每次获取一组的好友信息:


$url = 'http://f.10086.cn/im5/index/contactlistView.action?fromUrl=&idContactList='.$id;

                            do{

                                     $curl=

                                     curl_init($url);//分组好友信息获取

                            curl_setopt($curl,CURLOPT_COOKIEFILE,$cookie);

                            curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie);

                            curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);

                            $result= curl_exec($curl);

                            curl_close($curl);

 

                                     }        while($result == false);

-------------------------------------------------------------------------------------------------------------------------------

 

获取csrfToken:


//Get方法获得csrfToken码

                            $url ='http://f.10086.cn/im5/chat/toChatMsg.action?touserid=' . $touserid .'&html5Url=toChat';

                            do

                            {

                                              $curl =

                                     curl_init($url);

                                     curl_setopt($curl,CURLOPT_COOKIEFILE,$cookie);

                                     curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie);

                                     curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);

                                     $result =curl_exec($curl);

                                     curl_close($curl);

                            }while($result == false);

                            //echo $result;

                            $html =str_get_html($result);

                            $input = $html ->find('input[name=csrfToken]');//返回的是一个数组

                            $csrfToken =$input[0]->value;

-------------------------------------------------------------------------------------------------------------------------------

 

发送飞信:


//post方法发送消息

                            $postData = array(

                            'touserid'=>$touserid,

                            'msg' => $msg,

                            'csrfToken' =>$csrfToken

                            );

                           

                            do{   

                                               $curl=

                                                        curl_init('http://f.10086.cn/im5/chat/sendNewMsg.action');

                                     curl_setopt($curl,CURLOPT_HEADER,0);

                                     curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);

                                     curl_setopt($curl,CURLOPT_COOKIEFILE,$cookie);

                                     curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie);

                                     curl_setopt($curl,CURLOPT_POST,1);

                                     curl_setopt($curl,CURLOPT_POSTFIELDS,$postData);

                                     $result =curl_exec($curl);

                                     //这里记一下流水

                                     curl_close($curl);

                            }while($result ==false);

-------------------------------------------------------------------------------------------------------------------------------

我的技术博客:http://linger.devhub.com/blog/925118-blog-post/


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值