不知道有没有人水过,姑且说一下。
原理
qq 在发送类似这样的卡片的时候,发出的是一段 xml 的消息。
然后好友的 qq 在渲染这个卡片的时候,会自动向 picture 里的图片链接地址发送 http 请求来获取图片。
也就是说,只要将 picture 里的图片链接改成自己的服务器,就可以记录下访问者的 ip。
思路
服务端总之非常好写,只要可以返回图片和记录访问者 ip 就行了。
发送 xml 卡片信息的话,可以使用 Qnotified 插件发送。其他的我就不知道了
其他细节
- 如果 qq 以及访问过了某个图片地址,下一次收到时就不会再次访问了
- 电脑版的 qq,包括 TIM 只会访问链接地址为 url.cn 的短链接,非 url.cn 的链接不会访问。
- 移动 qq 会直接访问 picture 里的链接,不判断是否为 url.cn
url.cn 短链接的获取
目前网上大部分都是有限制的获取。
我目前用的 api 是 http://openmobile.qq.com/api/url_change
具体 qq 自己分享链接的时候抓包获取.
user-agent 对应的客户端
Dalvik/2.1.0 (Linux; U; Android 5.1.1; TAS-AN00 Build/LMY49I) - Android
Apache-HttpClient/UNAVAILABLE (java 1.4) - Android
IPadQQ/7.3.1.3 CFNetwork/978.0.7 Darwin/18.5.0 - iPad
QQ/8.2.7.610 CFNetwork/976 Darwin/18.2.0 - iPhone
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) - Desktop
瞎录的视频
内容差不多就是上面讲的那些.