在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → QQ模拟登录及获取Q群成员信息

QQ模拟登录及获取Q群成员信息

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:0.60M
  • 下载次数:72
  • 浏览次数:1823
  • 发布时间:2016-08-29
  • 实例类别:C#语言基础
  • 发 布 人:ainizhao315
  • 文件格式:.rar
  • 所需积分:8
 相关标签: 模拟 QQ 登录

实例介绍

【实例简介】

【实例截图】

【核心代码】

public QQHelper() { }
        private readonly FileHelper file = new FileHelper();
        /// <summary>
        /// 登录QQ
        /// </summary>
        /// <param name="username"></param>
        /// <param name="userpwd"></param>
        /// <param name="groupcode"></param>
        public bool Login(HttpContext c, string username, string userpwd, string code, out string Msg, out int Status)
        {

            Msg = string.Empty;
            Status = 0;
            string html = string.Empty;
            Random rand = new Random();
            string path = c.Server.MapPath("~\\file\\cook.txt");
            sendCookies = file.ReaderCookies(sendCookies, path);

            if (code.Contains("!"))
            {// 不需要验证码                
                List<Cookie> list = file.GetAllCookies(sendCookies);
                Referer = Url;
                string pt_verifysession_v1 = string.Empty;
                foreach (Cookie item in list)
                {
                    if (item.Name == "ptvfsession")
                        pt_verifysession_v1 = item.Value;
                }
                //userpwd = GetPassword(username, userpwd, code); //以前的QQ加密方式
                Url = string.Format("http://ptlogin2.qq.com/login?u={0}&verifycode={1}&pt_vcode_v1=0&pt_verifysession_v1={2}&p={3}&pt_randsalt=0&ptredirect=1&u1=http%3A%2F%2Fqun.qq.com%2Findex.html&h=1&t=1&g=1&from_ui=1&ptlang=2052&action=1-16-1426730359779&js_ver=10116&js_type=1&login_sig=mOkiOcWZ2k6M2-BLoS8tGut0YbSAJNyfd04Yp8MFccDxzsruKndSPGX8XEjBSnIw&pt_uistyle=20&aid=715030901&daid=73&", username, code, pt_verifysession_v1, userpwd);
                html = GetHtmlString(sendCookies, out outCookies);
                if (html.Contains("ptuiCB('0',"))
                {
                    file.WriteCookies(outCookies, path);
                    Status = 0;
                    Msg = "登录成功!";
                    return true;
                }
                else if (html.Contains("ptuiCB('1',"))
                {
                    Status = -1;
                    Msg = "登录失败,请稍后再试...";
                    return false;
                }
                else if (html.Contains("ptuiCB('3',"))
                {
                    Status = -1;
                    Msg = "登录失败,账号或密码错误...";
                    return false;
                }
                else if (html.Contains("ptuiCB('4',"))
                {
                    Status = -1;
                    Msg = "登录失败,验证码输入错误...";
                    return false;
                }
                else if (html.Contains("ptuiCB('7',"))
                {
                    Status = -1;
                    Msg = "登录失败,参数提交错误...";
                    return false;
                }
                else if (html.Contains("ptuiCB('71',"))
                {
                    Status = -1;
                    Msg = "账号异常,禁止登录...";
                    return false;
                }
            }
            else
            {// 手动输入验证码登录                
                List<Cookie> list = file.GetAllCookies(sendCookies);
                string pt_verifysession_v1 = string.Empty;
                foreach (Cookie item in list)
                {
                    if (item.Name == "verifysession")
                        pt_verifysession_v1 = item.Value;
                }
                //userpwd = GetPassword(username, userpwd, code); //以前的QQ加密方式
                Url = string.Format("http://ptlogin2.qq.com/login?u={0}&p={1}&verifycode={2}&aid=715030901&u1=http%3A%2F%2Fqun.qq.com%2F&h=1&ptredirect=1&ptlang=2052&daid=73&from_ui=1&dumy=&low_login_enable=0&regmaster=&fp=loginerroralert&action=0-10-1407488171734&mibao_css=&t=1&g=1&js_ver=10088&js_type=1&login_sig=SYFM9j-vUxL0oNYAwYU0sQUWOQ94B3WlJppK82Safih3S9VS0qRd0l4oAg73ovAV&pt_uistyle=17&pt_rsa=0&pt_vcode_v1=0&pt_verifysession_v1={3}", username, userpwd, code, pt_verifysession_v1);
                html = GetHtmlString(sendCookies, out outCookies);

                if (html.Contains("ptuiCB('0',"))
                {
                    file.WriteCookies(outCookies, path);
                    Status = 0;
                    Msg = "登录成功...";
                    return true;
                }
                else if (html.Contains("ptuiCB('1',"))
                {
                    Status = -1;
                    Msg = "登录失败,请稍后再试...";
                    return false;
                }
                else if (html.Contains("ptuiCB('3',"))
                {
                    Status = -1;
                    Msg = "登录失败,账号或密码错误...";
                    return false;
                }
                else if (html.Contains("ptuiCB('4',"))
                {
                    Status = -1;
                    Msg = "登录失败,验证码输入错误...";
                    return false;
                }
                else if (html.Contains("ptuiCB('7',"))
                {
                    Status = -1;
                    Msg = "登录失败,参数提交错误...";
                    return false;
                }
                else if (html.Contains("ptuiCB('71',"))
                {
                    Status = -1;
                    Msg = "账号异常,禁止登录...";
                    return false;
                }
            }
            return false;
        }

        /// <summary>
        /// 获取群内所有成员
        /// </summary>
        /// <returns></returns>
        public List<sys_user> GetAllUsers(HttpContext c, out string Msg, out int Status)
        {
            Msg = string.Empty;
            Status = -1;
            string groupcode = c.Request["groupcode"];
            List<sys_user> list = new List<sys_user>();
            string path = c.Server.MapPath("~\\file\\cook.txt");
            sendCookies = file.ReaderCookies(sendCookies, path);
            var list1 = file.GetAllCookies(sendCookies);
            string gtk = GetGTK(list1).ToString();
            Url = "http://qun.qq.com/cgi-bin/qun_mgr/search_group_members";
            string val = string.Format("gc={0}&st=0&end=19&sort=0&bkn={1}", groupcode, gtk);
            string html = POSTHtmlString(val, sendCookies, out outCookies);

            QQEntity entity = GetMemberList(html);// 反序列化JSON字符串为JSON对象
            int num = entity.count;
            Url = "http://qun.qq.com/cgi-bin/qun_mgr/search_group_members";
            val = string.Format("gc={0}&st=0&end={1}&sort=0&bkn={2}", groupcode, num, gtk);
            html = POSTHtmlString(val, sendCookies, out outCookies);
            entity = GetMemberList(html);// 反序列化JSON字符串为JSON对象

            foreach (memsData item in entity.mems)
            {
                sys_user u = new sys_user();
                u.Userrank = GetRankName(entity.levelname, item.lv);
                u.Qqage = string.Format("{0}年", item.qage);
                u.Qq = item.uin.ToString();
                u.Nickname = item.nick.Trim().Replace("&nbsp;", "");
                u.Jointime = item.join_time;
                u.Finalytalktime = item.last_speak_time;
                u.Createtime = new SQLHelper().ConvertDateTimeString(DateTime.Now);
                u.Groupname = item.card.Trim();

                list.Add(u);
            }



            return list;
        }

标签: 模拟 QQ 登录

实例下载地址

QQ模拟登录及获取Q群成员信息

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警