前言
QQ是一款热门的即时通讯软件。随着时间推移,他的功能和玩法被用户一一发现。
有些用户不说话,只看群聊消息。对于这些用户,我们不知道他是否在看着群的内容。而QQ窥屏检测可以简单、方便的检测出他们的存在。
窥屏检测的原理
QQ有一种卡片消息,里面可以插入网络图片。当用户的设备渲染到该卡片时,会自动请求该链接。我们可以利用其自动请求的特性,在服务端保存请求的IP地址、时间以及UA信息。
程序的使用方法
程序会检测GET参数id,如果没有则直接退出。当程序被请求时,会在./kpData/文件夹下生成id.txt的文件,包含请求时间、用户IP、IP属地和用户UA。每条数据用回车分隔,每组数据用两个回车分隔。
未来会实现的功能
- 屏蔽请求者的IP
程序部分源码
<?php
$id = $_GET['id'];
// id不存在则抛出错误
if(!$id) die('Missing parameter: id');
require './ipdatabase/src/IpParser/IpParserInterface.php';
require './ipdatabase/src/IpLocation.php';
require './ipdatabase/src/IpParser/QQwry.php';
require './ipdatabase/src/IpParser/IpV6wry.php';
require './ipdatabase/src/StringParser.php';
use itbdw\Ip\IpLocation;
$ip = $_SERVER['REMOTE_ADDR'];
$date = date("Y年m月d日 H时i分m秒");
$ua = $_SERVER['HTTP_USER_AGENT'];
$region = IpLocation::getLocation($ip)["area"];
file_put_contents('kpData/'.$id.'.txt', "$date\n$ip\n$region\n$ua\n\n",FILE_APPEND);
header("Location: https://api.dujin.org/bing/1920.php", true, 302);