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

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

作者: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);

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

 

--

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

第三方飞信抓包分析和实现_第1张图片

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);

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

 

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

第三方飞信抓包分析和实现_第2张图片

$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:

第三方飞信抓包分析和实现_第3张图片

//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;

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

 

发送飞信:

第三方飞信抓包分析和实现_第4张图片

//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/


你可能感兴趣的:(html,PHP,html5,header,url,input)