开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 5777|回复: 39
打印 上一主题 下一主题
收起左侧

[其它源码] 新版NTQQ通过接口获取登录QQ号

[复制链接]
结帖率:67% (2/3)
跳转到指定楼层
发表于 2023-12-13 17:31:33 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式   四川省成都市
分享源码
界面截图: -
是否带模块: 纯源码
备注说明: -
本帖最后由 zmoli775 于 2023-12-14 15:33 编辑


新版NTQQ通过API获取已登录QQ号.txt (3.34 KB, 下载次数: 65)
感谢 “bianyuan456” 帖友指点。代码块已更新。

[JavaScript] 纯文本查看 复制代码
void Main()
{
        string
                pt_local_tk = string.Empty,
                url_01 = "https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=0&target=self&s_url=https://im.qq.com/loginSuccess";

        var ret1 = t07.qq_int775Async(url_01); var Cookies = ret1.Result.Cookies;
        pt_local_tk = Cookies["pt_local_token"];


        Console.WriteLine($"获取到pt_local_tk值为:{pt_local_tk}\r\n");

        Dictionary<string, string> header = new Dictionary<string, string>
        {
                { "Cookie",$"pt_local_token={pt_local_tk}"},
                { "Referer","https://xui.ptlogin2.qq.com"},
                { "User-Agent", "curl/8.4.0" }
        };

        string url_02 = $"https://localhost.ptlogin2.qq.com:4301/pt_get_uins?callback=ptui_getuins_CB&pt_local_tk={pt_local_tk}";
        var ret2 = t07.qq_int775Async(url_02, header);
        if (ret2.Result != null)
        {
                Console.WriteLine($"返回数据:\r\n{ret2.Result.ResString}");
                string s="var_sso_uin_list=",e=";";
                Match match = Regex.Match(ret2.Result.ResString, $"(?<=({s}))[.\\s\\S]*?(?=({e}))", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline);
                s = match.Success ? match.Value : string.Empty;
                
                if (!string.IsNullOrEmpty(s))
                {
                        Console.WriteLine($"{s}\r\n");
                        
                        var userInfo = JsonSerializer.Deserialize<UserInfo[]>(s);
                        
                        foreach (var user in userInfo)
                        {
                                Console.WriteLine($"nickname(昵称):{user.nickname}");
                                Console.WriteLine($"account(帐号):{user.account}\r\n");                        
                        }
                }
        }
        else
        {
                Console.WriteLine("返回数据失败");
        }
}

public class UserInfo
{
        public int uin { get; set; }
        public int face_index { get; set; }
        public int gender { get; set; }
        public string nickname { get; set; }
        public int client_type { get; set; }
        public int uin_flag { get; set; }
        public int account { get; set; }
}


public class Res
{
        public string ResString { get; set; } = string.Empty;
        public Dictionary<string, string> Cookies { get; set; } = new();
}

class t07
{
        public static async Task<Res?> qq_int775Async(string url, Dictionary<string, string>? headers = null)
        {
                CookieContainer cookieContainer = new CookieContainer();

                using HttpClient hc = new(new HttpClientHandler() { CookieContainer = cookieContainer }) { Timeout = new TimeSpan(0, 0, 0, 0, 1200) };

                if (headers != null && headers.Count > 0) { foreach (var kv in headers) { hc.DefaultRequestHeaders.Add(kv.Key, kv.Value); } }

                HttpResponseMessage? res = null;

                try { res = await hc.GetAsync(url); } catch (Exception) { return null; }

                Res mr = new();

                if (res != null && res.IsSuccessStatusCode)
                {
                        CookieCollection cc = cookieContainer.GetCookies(res.RequestMessage.RequestUri);
                        if (cc != null && cc.Count > 0)
                        {
                                foreach (Cookie cookie in cc.Cast<Cookie>())
                                {
                                        mr.Cookies.Add(cookie.Name, cookie.Value); // Console.WriteLine($"{cookie.Name}={cookie.Value}");
                                }
                        }
                        mr.ResString = await res.Content.ReadAsStringAsync();
                }
                else
                {
                        Console.WriteLine($"状态码:{res.StatusCode}\r\n请求失败:{res.RequestMessage}");
                }
                return mr;
        }
}

枚举类名获取本机登录QQ号:参考 https://125.confly.eu.org/thread-14805580-1-1.html 支持新旧QQ









补充内容 (2025-4-10 17:22):
优化 -> https://125.confly.eu.org/forum.php?mod ... 82&pid=30132289

补充内容 (2025-4-10 17:24):
少许优化·请跳转到34

评分

参与人数 2好评 +1 精币 +1 收起 理由
模块666 + 1 毫无作用,编辑好后根本运行不了
wa690602724 + 1 感谢分享,很给力!~

查看全部评分


结帖率:67% (2/3)

签到天数: 5 天

35
 楼主| 发表于 2025-4-10 17:19:34 | 只看该作者   四川省乐山市
陈2雷 发表于 2025-2-23 20:59
能不能静默获取 p_skey这些参数

只取已经登录的QQ号
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)

签到天数: 5 天

34
 楼主| 发表于 2025-4-10 17:17:50 | 只看该作者   四川省乐山市
本帖最后由 zmoli775 于 2025-4-10 17:22 编辑

[C#] 纯文本查看 复制代码
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] // 窗口是否可见
private static extern bool IsWindowVisible(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] // 窗口句柄是否有效
private static extern bool IsWindow(IntPtr hWnd);
void Main()
{
        Task findtask = Task.Run(() => { FindLoginQQ(65565 + 1, 65565 * 100); });
        Task.WaitAll(findtask);
        Console.WriteLine("执行完毕...");
}
void FindLoginQQ(int s, int e)
{
        IntPtr hWnd; StringBuilder className = new StringBuilder(64); string qqclassName; long hWndId;
        for (int i = s; i <= e; i++)
        {
                hWnd = (IntPtr)i; hWndId = hWnd.ToInt64();
                if (IsWindow(hWnd) && !IsWindowVisible(hWnd) && hWndId > s && hWndId < e)
                {
                        className.Length = 0;
                        int len = GetClassName(hWnd, className, className.Capacity);
                        if (len != 0 && len > 25 && len <= 65)
                        {
                                qqclassName = className.ToString(); //Console.WriteLine(qqclassName);
                                if (qqclassName.StartsWith("NTQQOpenSdk") || qqclassName.StartsWith("OPENSDK_SHARE2QQ_QQ_WINCLASS") /*|| qqclassName.StartsWith("OPENSDK_AUTH_IPC_CLASS_QQ")*/)
                                {
                                        Console.WriteLine($"窗口句柄:{hWnd.ToInt64()} = 窗口类名:{qqclassName} 长度:{qqclassName.Length}");
                                        var match = Regex.Match(qqclassName, @"_(\d+)$");
                                        if (match.Success)
                                        {
                                                string result1 = match.Groups[1].Value; Console.WriteLine($"获取号码:{result1}");
                                        }
                                }
                        }
                }
        }
}

点评

少许优化。   四川省乐山市  发表于 2025-4-10 17:18
回复 支持 反对

使用道具 举报

33
发表于 2025-2-23 20:59:13 | 只看该作者   浙江省湖州市
能不能静默获取 p_skey这些参数
回复 支持 反对

使用道具 举报

32
发表于 2025-2-20 17:06:55 | 只看该作者   四川省成都市
看下,支持一下
回复 支持 反对

使用道具 举报

签到天数: 3 天

31
发表于 2025-1-9 22:26:31 | 只看该作者   福建省三明市
123213213123123123
回复 支持 反对

使用道具 举报

30
发表于 2024-10-15 15:38:43 | 只看该作者   江苏省南京市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 1 天

29
发表于 2024-8-26 21:01:54 | 只看该作者   湖北省天门市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

28
发表于 2024-3-3 13:23:52 | 只看该作者   广西壮族自治区玉林市
感谢分享
回复 支持 反对

使用道具 举报

27
发表于 2024-1-1 10:45:57 | 只看该作者   浙江省温州市
66666666666666666
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)

签到天数: 3 天

26
发表于 2023-12-31 16:23:36 | 只看该作者   江西省南昌市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表