zoukankan      html  css  js  c++  java
  • 验证码检查curl 模拟登录

    这几周一直在研究验证码检查之类的问题,上午正好有机会和大家共享一下.

        更多原创文章 请存眷  美公网世界

        

    模拟登陆 126邮箱 ,人人网等 根据需要自行修改哈,代码如下

        

    1. //模拟登陆 验证码的网站,首先获得验证码图片的cookie  
    2.   
    3. define('SCRIPT_ROOT',dirname(__FILE__).'/');  
    4. $cookieFile = SCRIPT_ROOT.'cookie.tmp';  
    5. /*模拟浏览器*/  
    6. $user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)";  
    7. //这里如果知道了cookie可直接发送到目标浏览器  
    8. //$cookie = "lang=zh-cn; JSESSIONID=6AF7DA3F6A5FC3ECA39A7485C3FDBBAE";   
    9. $header = array (    
    10.          "Host:login.biuman.com",     
    11.         "Referer: http://www.biuman.com",    
    12. );   

        

     

        每日一道理
    书籍好比一架梯子,它能引领人们登上文化的殿堂;书籍如同一把钥匙,它将帮助我们开启心灵的智慧之窗;书籍犹如一条小船,它会载着我们驶向知识的海洋。

        

    1. //验证码图片的url  
    2. function getCookie($url){  
    3.     global $cookieFile;      
    4.     $curl = curl_init (); // 启动一个CURL会话  
    5.     curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址  
    6.     curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 对认证证书起源的检查  
    7.     curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 从证书中检查SSL加密算法是不是存在  
    8.     curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 发送一个惯例的GET请求  
    9.     curl_setopt($curl,CURLOPT_COOKIEJAR, $cookieFile); // 把返回来的cookie信息保存在文件中  
    10.     $res = curl_exec($curl);  
    11.     curl_close($curl);  
    12.   
    13. }  
    14.   
    15.   
    16. function login($url){  
    17.     global $cookieFile,$header,$agent;  
    18.     $data = array(  
    19.         'name'=>'biuman'   
    20.     );  
    21.   
    22.     $curl = curl_init (); // 启动一个CURL会话  
    23.     curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址  
    24.     curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 对认证证书起源的检查  
    25.     curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 从证书中检查SSL加密算法是不是存在  
    26.     curl_setopt ( $curl, CURLOPT_USERAGENT, $agent ); // 模拟用户使用的浏览器  
    27.     curl_setopt($curl, CURLOPT_HTTPHEADER, $header);  //设置头信息的地方    
    28.     @curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自动跳转      
    29.     //curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 发送一个惯例的GET请求  
    30.     curl_setopt ( $curl, CURLOPT_POST, 1 ); // 发送一个惯例的Post请求  
    31.     curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data ); // Post提交的数据包  
    32.   
    33.     //curl_setopt ( $curl, CURLOPT_COOKIE, $cookie); // 直接发送cookie内容  
    34.      curl_setopt($curl,CURLOPT_COOKIEFILE, $cookieFile); //发送Cookie文件  
    35.     curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 ); // 设置超时限制防止死循环  
    36.     curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 不显示返回的Header区域内容  
    37.     curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 获得的信息以文件流的形式返回  
    38.     $res = curl_exec ( $curl ); // 执行操纵  
    39.     if (curl_errno ( $curl )) {  
    40.         return '失败:Errno' . curl_error ( $curl );  
    41.     }  
    42.     curl_close ( $curl ); // 关闭CURL会话  
    43.     return $res;          
    44.   
    45. }  
    46.   
    47.     //1.  
    48.     $auth_url = "http://www.biuman.com/auth";  
    49.     getCookie($auth_url);  //获得验证码cookie  
    50.   
    51.     //2.  
    52.     $url = 'http://www.biuman.com/home'; //登陆以后提交的url  
    53.     $res = login($url);  
    54.     print_r($res);  

    文章结束给大家分享下程序员的一些笑话语录: 与女友分手两月有余,精神萎靡,面带菜色。家人介绍一女孩,昨日与其相亲。女孩果然漂亮,一向吝啬的我决定破例请她吃晚饭。
    选了一个蛮贵的西餐厅,点了比较贵的菜。女孩眉开眼笑,与我谈得很投机。聊着聊着,她说:“我给你讲个笑话吧。”“ok”
      “一只螳螂要给一只雌蝴蝶介绍对象,见面时发现对方是只雄蜘蛛。见面后螳螂问蝴蝶‘如何?’,‘他长的太难看了’,‘别看人家长的丑,人家还有网站呢’。”
      “呵呵………”我笑。忽然她问:“你有网站吗?”  

  • 相关阅读:
    运维自动化工具 Kickstart
    Ansible 运维自动化 ( 配置管理工具 )
    Redis 主从同步配置
    MONGO db INSTALLATION
    Innobackupex MySQL 全备、增备及恢复
    strace 使用
    LCD硬件原理
    多点触摸_电容屏驱动程序_实践_tiny4412
    单点触摸屏与多点触摸屏的异同
    多点触摸屏——电容屏驱动程序
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3089483.html
Copyright © 2011-2022 走看看