php代码实现关键词搜索,PHP代码实现百度统计关键词及来路推送
搜索热词
勾起我搞这个的兴趣是因为有个卖软件的,老是向我的百度统计后台推送引流软件广告。搜索后发现早就有人做过这方面的研究,然而随着统计代码版本升级,部分功能暂时还未解决。今天这篇 PHP 代码实现提交虚假数据给百度统计就教大家,怎么向目标网站的百度统计后台推送来源地址,关键词来源我还没解决,有知道的大佬劳烦告诉我一声,不甚感激。
首先我们先来分析下百度统计的作用原理,这个过程你可以读百度统计 js 代码,也可以使用抓包的方式。我看不懂百度统计的代码,一大片的 abcdefg…..看得脑袋痛,所以我使用浏览器抓包的方式来获取百度统计 js 的工作过程。
打开一个带有百度统计的网站,我这里就直接打开我的博客代码狗首页,然后打开浏览器的 F12 中 network 标签,准备抓包。随便打开一个链接,注意,我的网站链接都会新窗口打开,所以先用 F12 的改下 elements 标签修改下超链接跳转方式,让新窗口打开变成当前窗口打开,然后通过浏览器抓到如下的请求过程。
可以清楚得看到,一共请求了百度 3 次,点击第一次的请求地址我们可以看到真正的百度统计代码。如果你觉得你的 js 功底不错,可以尝试阅读下。第二次与第三次是向一张 gif 发起的请求,搜索后网友告诉我是为了防止出现跨域请求,所以伪装成一张图片。点开我们可以看到如下的请求参数。
第二次请求参数:
cc=1
ck=1
cl=24-bit
ds=1600×900
vl=761
ep=77772,2590
et=3
fl=27.9
ja=0
ln=zh-cn
lo=0
lt=1560213157
rnd=1965430449
si=338f36c03fc36a54e79fbd2ebdae9589
su=https://www.daimadog.com/wp-admin/post-new.PHP
v=1.2.51
lv=3
sn=58284
u=https://www.daimadog.com/
第三次请求参数:
cc=1
ck=1
cl=24-bit
ds=1600×900
vl=276
et=0&fl=27.9
ja=0
ln=zh-cn
lo=0
lt=1560213157
rnd=281282742
si=338f36c03fc36a54e79fbd2ebdae9589
su=https://www.daimadog.com/
v=1.2.51
lv=3
sn=58362
ct=!!
通过两次参数对比,我们可以发现有部分参数不一样,但大部分都是一样的。这些参数对应的含义大概如下:
cc 不知
ck 是否支持 cookie 1:0
cl 颜色深度 如 24-bit
ds 屏幕尺寸,如 1600×900
vl 不知
ep 初始值为’0′,时间变量,反映页面停留时间,格式大概是:现在时间-载入时间+“,”+另一个很小的时间值
et 初始值为’0′,如果 ep 时间变量不是 0 的话,它会变成其他
fl flash 版本
ja java 支持 1:0
ln 语言 zh-cn
lo 不知
lt 时间戳
rnd 随机数(1 开头有 10 位 其它开头只有 9 位)
si 你的百度统计 id
su 来源地址
v 百度统计 js 版本号
lv 不知
sn 5 位随机数
u 当前页地址
ct 不知,默认!!
tt 当前页标题
当我们首次进入网站被统计时,发现百度统计只提交了 2 次请求(如下),因此,我们只需模拟这两次请求就能在百度统计后台看到了。
PHP 源码:
visbd();
function visbd(){
$bdid='338f36c03fc36a54e79fbd2ebdae9589';
$bdjs = 'https://hm.baidu.com/hm.js?';
$bdgif = 'https://hm.baidu.com/hm.gif?';
$params=[
'cc'=>1,
'ck'=>1,
'cl'=>'24-bit',
'ds'=>'1600x900',
'vl'=>'1760',
//'ep'=>'1551962,70574',
//'et'=>3,
'fl'=>27.9,
'ja'=>0,
'ln'=>'zh-cn',
'lo'=>0,
'lt'=>time(),
//'rnd'=>rand(1000000000,7000000000),
'si'=>$bdid,
'su'=>'https://www.23456789.com',
'v'=>'1.2.51',
'lv'=>3,
'sw'=>'代码',
//'sn'=rand(10000,99999),
'u'=>'https://www.daimadog.com/'
];
$url1=$bdjs.$bdid;
echo $url1.'';
curl_get($url1);
$params1=$params;
$params1['ep']=rand(7000000,9999999).','.rand(10000,400000);
$params1['et']='3';
$params1['rnd']=rand(1000000000,7000000000);
$params1['sn']=rand(10000,99999);
ksort($params1);
$str=urldecode( http_build_query($params1));
$url2=$bdgif.$str;
echo $url2.'';
curl_get($url2);
$params2=$params;
$params2['et']='0';
$params2['ct']='!!';
$params2['tt']='wordpress优化';
ksort($params2);
$str1=urldecode( http_build_query($params2));
$url3=$bdgif.$str1;
echo $url3.'';
curl_get($url3);
}
function curl_get($url){
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_HEADER,1);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
?>
我模拟了谷歌、2345、23456789 这三个地址的来源,在后台也看到了这三条统计,说明我们的代码是 OK 的,搜索词这个东西我研究了一阵没找到怎么来的,有知道的大佬告诉我一声!
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
相关文章:

linux跨主机复制文件
scp -r billing10.200.171.111:/billdata2/user/yanhm/redis/* /newboss/billing/user/aabb 其中: 10.200.171.111:远程主机 billing:远程主机的用户名 /billdata2/user/yanhm/redis/:要复制远程主机的文件路径 /newboss/billing/…

delphi使用outputdebugstring调试程序和写系统日志
delphi使用outputdebugstring调试程序和写系统日志 procedure TForm1.btn1Click(Sender: TObject); beginOutputDebugString(dddddd);OutputDebugString(11); end;procedure TForm1.btn2Click(Sender: TObject); varEvtSrcHand: THandle;EvtMsg: String; p:Pointer; i:integer;…

一个下载Windows镜像的地址
https://www.52pojie.cn/thread-633128-1-1.html转载于:https://www.cnblogs.com/blogs-jch/p/11163849.html

perf + 火焰图分析程序性能
From: https://www.cnblogs.com/happyliu/p/6142929.html 1、perf命令简要介绍 性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果&a…

jquery 设置css样式
$("#61dh a").css(color, 多个样式属性 var divcss {background: #EEE,width: 478px,margin: 10px 0 0,padding: 5px 10px,border: 1px solid #CCC};$("#result").css(divcss);查看某个元素的css属性值。 $("#61dh a").css("color"…

php改7z,PHP的7z扩展名? - php
我找不到一个,也不知道PHP Compression and Archive Extensions中的任何一个是否可以工作。您认为我可以使用compression stream从7z文件读取数据吗?更新7z forums对php扩展有很多要求参考方案7z文件格式可以使用各种compression algorithms,…

Classloader内存泄露
2019独角兽企业重金招聘Python工程师标准>>> 最近遇到了这个问题,在修改了-Xmx后有时仍然会出现,下文分析的很有启发,看了下文重新分析我的应用,在项目中我使用了spring mvc作为控制层,由于使用到了微信公众…

Springboot + oauth2 单点登录 - 原理篇
OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。授权码模式(authorization code)密码模式(resource owner password credentials)客户端模式(client credentials) 不常用。

Java 类型判断方法
Java 类型判断方法有三种,分别是instanceof是关键字,isInstance和isAssignableFrom是Class中的方法。> cls);

Docker-Compose搭建单体SkyWalking 6.2
SkyWalking简介 SkyWalking是一款高效的分布式链路追踪框架,对于处理分布式的调用链路的问题定位上有很大帮助 有以下特点: 性能好 针对单实例5000tps的应用,在全量采集的情况下,只增加 10% 的CPU开销。支持多语言探针支持自动及手…

gprof 性能优化工具
gprof用于分析函数调用耗时,可用gprof分析最耗时的函数,以便优化程序。 gcc链接时也一定要加-pg参数,以使程序运行结束后生成gmon.out文件,供gprof分析。 gprof默认不支持多线程程序,默认不支持共享库程序。 gcc 编…

基于Metronic的Bootstrap开发框架经验总结(7)--数据的导入、导出及附件的查看处理...
在很多系统模块里面,我们可能都需要进行一定的数据交换处理,也就是数据的导入或者导出操作,这样的批量处理能给系统用户更好的操作体验,也提高了用户录入数据的效率。我在较早时期的EasyUI的Web框架上,也介绍过通过Exc…

resin php,resin竟然开始支持PHP
真是好消息,resin开始支持PHP了,早上查资料,意外的看到了这个消息。由Resin 3.0.17开始,Resin里多了一个称为Quercus的东西,Quercus其实就是用Java实作的PHP语言模组。一直以来WEB语言都是各自为政,都有自己…

NSD WINDOWS--2014.8.11
实验01:不同网段的计算机远程配置交换机实验目标:实现不同网段的计算机远程配置交换机实验环境:实验步骤:一、分别配置pc0和pc1的ip地址网关二、配置交换机的管理ip地址和网关三、配置交换机远程管理密码和enable密码四、配置路由器的ip地址五…

day1-数据库基础
数据库基本概念 数据库是什么 数据库是用来存储数据的仓库,本质上就是一套基于CS架构的服务端和客户端程序,最终将数据存储在服务器端的磁盘中。之前学过的数据存储方式有: 列表 字典......等等,是在内存中的数据,缺点…

双重指针作为函数参数的妙用
双重指针作为函数参数,可以在函数函数内部修改外部指针的值。主要用法包括: 1. 在函数内部分配内存,作为函数参数返回; 2. 在函数内部设置指针为空; #include <stdio.h> #include <stdlib.h> #include …

什么是常函数?
类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。 在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加 const,而对于改变数据成员的成…
matlab整型和浮点的区别,技术帖 | 心理学MATLAB初学者教程--简单数据类型介绍(逻辑型数据,整型/浮点型数据,字符型)......
1.2.1 什么是变量和变量名变量这个词似乎在许多地方都有出现,在计算机中变量是指是一段有名字的连续存储空间(摘自百度百科),而这个所谓的名字就叫做变量名。举个例子说现在我们再MATLAB的命令窗口中输入:A 1 然后按回车,我们会看…

为窗口添加滚动条事件
为窗口添加滚动条事件其实非常的简单, window.οnscrοllfunction(){};注意在获取滚动条距离的时候谷歌不识别document.documentElement.scrollTop,必须要加上document.body.scrollTop;即var scrolltopdocument.documentElement.scrollTop||d…

当远程桌面到Windows终端服务器,出现终端服务器超出了最大允许连接数,怎么办...
如果是老版本的MSTSC则使用 MSTSC /console /v:ip如果是新版本 MSTSC /admin /v:ip转载于:https://www.cnblogs.com/SharkXu/archive/2012/10/08/MSTSC.html

连续地址数据(数组或者malloc的内存)作为函数参数
在编程时,一簇连续的内存单元,比如数组或者malloc的内存块,如下的数组a 或者指针p. int a[4]; int *p malloc(4 * sizeof(int)); 我们要想修改上述连续的内存块,可以写一个函数(一维指针做参数传入起始地址即可)来搞定。 If …

Linux 文件系统及 ext2 文件系统
linux 支持的文件系统类型 Ext2:有点像 UNIX 文件系统。有 blocks,inodes,directories 的概念。Ext3:Ext2 的加强版,添加了日志的功能。支持 POSIX ACL(Access control Lists,访问控制列表) 。Isofs(iso9660):CDROM 文件系统。Sysfs:基于 ram 的文件系统,…
php每分钟刷新一次的验证码,php如何在进入页面的时候自动刷新一次验证码
页面直接进入login页面的时候无法获取到$_SESSION["auth"]值,只能刷新一次验证码才能获取到值,怎么才能在用户访问的时候自动刷新一次验证码,求大神支招。。。验证码回复讨论(解决方案)哪里获取到$_SESSION["auth"]值&am…

vs2010快捷方式
【窗口快捷键】 CtrlW,W: 浏览器窗口 CtrlW,S: 解决方案管理器 CtrlW,C: 类视图 CtrlW,E: 错误列表 CtrlW,O: 输出视图 trlW,P: 属性窗口 CtrlW,T: 任务列表 CtrlW,X: 工具箱 CtrlW,B: 书签窗口 CtrlW,U: 文档大纲 CtrlD,B: 断点窗口 CtrlD,I: 即时窗口 CtrlTab: 活…

移动端rem屏幕设置
//修改页面title var pageTitledocument.getElementsByTagName("title")[0].innerHTML; if(location.href.indexOf("index.html")>-1 || location.href.indexOf("html")-1){document.getElementsByTagName("title")[0].innerHTML&q…

二维指针操作链表
背景 Linus slashdot: https://meta.slashdot.org/story/12/10/11/0030249 Linus大婶在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针的例子,解释了…

php多选框怎么传值,tp3.2如何处理多选框传参和判断状态
创建多选框:(1)普通的多选:123(2)在数据库中遍历出来的多选框,value和data-id都要赋值(大家都懂,我就不说啦):{$vo.title} 2.我是用jq做的异步,我是使用英文“,”分割字段存储的。我们的前端是自己封装过的,大家根据自…

UIWebView和UIActivityIndicatorView的结合使用
环境:Xcode6.1 UIWebView是iOS开发中常用的一个控件,是内置的浏览器控件,我们可以用它来浏览网页,加载文档等。这篇文件将结合UIActivityIndicatorView控件制作一个小实例(加载apple的官网)。效果如下: 一.建立一个Sin…

Python对象类型——字符串、列表、元组
字符串Python连接多个字符串可用“”号,但这个操作不如把所有子字符串放到一个列表或可迭代对象中,然后调用一个join方法来把所有内容连接在一起节约内存。原始字符串操作符(R/r):相当于取消“\”转义,在使…

leetcode--1:(python)Two Sum
2019.5.25: #1 Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: 我的解法࿱…