MorFans Dev
折腾 - 开发 - 分享

【技术向】如何获取指定QQ在线状态

【技术向】如何获取指定QQ在线状态

前段时间因为需要,所以去百度搜了下怎么查QQ状态的接口,但无奈…接口都没有能用的

毛爷爷说的好

自己动手丰衣足食

那就自己抓包吧

准备工具

FD一个
[dl href=’http://dlsw.baidu.com/sw-search-sp/soft/47/10963/fiddler4_4.6.2.0_setup.1453708442.exe’]Fiddler4 英文版[/dl]
QQ任意版本一个

开始抓包

经过寻找我们发现,可以在查找中查到好友的在线状态qq%e6%88%aa%e5%9b%be20161006212054

我们首先打开Fiddler,你将会看到这么一个界面
qq%e6%88%aa%e5%9b%be20161006212254

我们将它最小化,再次打开QQ查找窗口

输入QQ号,查找,就出现了如下显示
qq%e6%88%aa%e5%9b%be20161006212429

我们关闭查找窗口,再次打开Fiddler,就会发现出现了很多数据(如下)
qq%e6%88%aa%e5%9b%be20161006212557

其中有一条链接很显眼
[v_error]http://cgi.find.qq.com/qqfind/buddy/search_v3[/v_error]
这是腾讯标准的接口链接,单击链接,再点击右下的TextView,果然,返回的一串QQ信息的Json文本

右键链接,选择qq%e6%88%aa%e5%9b%be20161006213448
打开一个记事本,粘贴,可以看到以下信息

[collapse title=”提交协议头”]
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.59 QQ/8.6.18804.201 Safari/537.36
Cookie: [Cookies]//这里是cookies,自行替换下

这里对提交的协议头进行了下修改,只提交我们需要提交的就ok
[/collapse]

在查看下提交数据qq%e6%88%aa%e5%9b%be20161006213735

是以下文本

num=20&page=0&sessionid=0&keyword=QQ号&agerg=0&sex=0&firston=1&video=0&country=1&province=15&city=2&district=0&hcountry=1&hprovince=0&hcity=0&hdistrict=0&online=1&ldw=ldw值,cookies计算得出

ldw计算JS:(参数填cookies里的skey参数)

function tk(str) {
    var hash = 5381;
    for (var i = 0,
    len = str.length; i < len; ++i) hash += (hash << 5) + str.charAt(i).charCodeAt();
    return hash & 2147483647
}

然后访问接口Url,将接口返回的Json解析,取出stat的值
Json名:[v_notice]result.buddy.info_list[0].stat[/v_notice]

现已知:
1=在线;
20=下线

好了文章到此结束,感谢阅读

赞赏
魔帆博客,版权所有 | 如未注明,均为原创
本站均采用 BY-NC-ND 协议 (署名-非商业性使用-禁止演绎) 进行授权。
转载请注明来自本站文章:【技术向】如何获取指定QQ在线状态(https://www.morfans.cn/archives/2023)

Sonui

文章作者

发表回复

textsms
account_circle
email

【技术向】如何获取指定QQ在线状态
前段时间因为需要,所以去百度搜了下怎么查QQ状态的接口,但无奈...接口都没有能用的 毛爷爷说的好自己动手丰衣足食那就自己抓包吧 准备工具 FD一个 [dl href='http://dlsw.baidu…
扫描二维码继续阅读
2016-10-06