基本信息
源码名称:QQ模拟登录及获取Q群成员信息
源码大小:0.60M
文件格式:.rar
开发语言:C#
更新时间:2016-08-29
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559

本次赞助数额为: 8 元 
   源码介绍

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