模拟Google ToolBar直接提交PageRank请求
作者:佚名 文章来源:网络 更新时间
:2008-7-7 17:41:33
算法来源于 Internet,Greg Shaw稍作修改,直接打开Socket,模拟ToolBar的行为,直接向www.google.com 提交查询
原理介绍:
很多站长对他们的站点在 Google Dance期间的Rank的改变很有兴趣。
除此之外,很多人也想知道他们的新的PaneRank。一般而言,Google 工具栏
从www.google.com的实际DNS记录的IP所指定的数据中心取得PageRank值。
所以,当Google Dance开始时,工具栏通常会显示旧的PageRank值。
Google以一个简单的文本文件的形式提交PageRank给工具栏。在早些时候,是通过XML来
传递的。大概是在2002年8月份的时候换成文本形式的。PageRank文件能够直接通过向Google提交请求
获取PR:
http://www.google.com/search?
client=navclient-auto&
ch=0123456789&
features=Rank&
q=info:http://www.domain.com/
在PageRank文件中,只有一行文字,最后的那部分就是PageRank值.
为了在浏览器显示PageRank文件,上面的URL中的每个组成参数都是必须的:
1. "navclient-auto"是参数"client"的值,用来识别工具栏的。
2. 通过参数"q"来提交URL。
3. 参数"features"的值是"Rank",表示请求一个PageRank文件。如果忽略这个参数,Googles的
服务器还是返回旧的XML格式的文件。
4. 参数"ch"传输一个你想提交的URL的校验和给Google。
当Google的工具栏的版本更新时,校验和可能被改变。
Google工具栏请求一个PageRank文件后可以被IE缓存。所以他们的URL和校验和能够简单地在
Internet临时文件夹里面查看到。知道了你的URL,你就可以通过浏览器查看你的PageRank。因为
PageRank文件是被浏览器缓存的且以明文显示,一旦请求之后不会清除。所以在浏览器里面
查看PageRank文件应该没有违反Google的条款。然而,你应该要谨慎,因为工具栏是以他们自己的用户代理
提交给Google的:
Mozilla/4.0 (compatible; GoogleToolbar 1.1.60-deleon; OS SE 4.10)
1.1.60-deleon 是工具栏的版本,当然它可能会改变。OS是你安装的操作系统。所以,
如果没有通过一个代理服务器并且浏览器ID 没有被修改的话,Google能够识别浏览器的请求。
现在,让我们来看看我们如何能够取得新的PageRank值。看看IE的换存,你将注意到PageRank文件
不是从www.google.com而是从IP地址 像216.239.33.102取得的。另外,PageRank文件的URL通常
含有一个"failedip"的参数,它的值被设置为像"216.239.35.102;1111"(它的功能还不是很清楚)
(upsdn注释:就是失效的服务器的IP地址,一般就是上次请求失败的服务器,或者没有更新索引的服务器)
然而,得到新的PageRank很简单。修改URL中的IP地址,新的请求就发给一个有了新的索引的数据
中心。
下面介绍用PHP模拟Toobar的行为直接获取PageRank值:
===================
<?php
//error_reporting(E_ALL);
define('GOOGLE_MAGIC', 0xE6359A60);
//unsigned shift right
function zeroFill($a, $b)
{
$z = hexdec(80000000);
if ($z & $a)
{
$a = ($a>>1);
$a &= (~$z);
$a |= 0x40000000;
$a = ($a>>($b-1));
}
else
{
$a = ($a>>$b);
}
return $a;
}
function mix($a,$b,$c)
{
$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
return array($a,$b,$c);
}
function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC)
{
if(is_null($length))
{
$length = sizeof($url);
}
$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;
while($len >= 12)
{
$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
$mix = mix($a,$b,$c);
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
$k += 12;
$len -= 12;
}
$c += $length;
switch($len) /* all the case statements fall through */
{
case 11: $c+=($ur
【相关文章:】
PHP读取RSS feed源代码(带注释,可读取多个源)
Apache+php+mysql安装与配置图解(最新版)
Apache与PHP的整合过程
PHP原版HTML编码器溢出问题的解决
用PHPINFO来实现PHP的配置统计过程
新手如何使用PHP创建RSS阅读器
半小时精通PHP正则表达式
PHP网页制作常用的正则表达式
PHP+MYSQL+Javascript数据库查询结果的动态显示
如何在Linux下装PHP+JSP
【发表评论】【打印此文】【关闭窗口】【点击数: 】
原理介绍:
很多站长对他们的站点在 Google Dance期间的Rank的改变很有兴趣。
除此之外,很多人也想知道他们的新的PaneRank。一般而言,Google 工具栏
从www.google.com的实际DNS记录的IP所指定的数据中心取得PageRank值。
所以,当Google Dance开始时,工具栏通常会显示旧的PageRank值。
Google以一个简单的文本文件的形式提交PageRank给工具栏。在早些时候,是通过XML来
传递的。大概是在2002年8月份的时候换成文本形式的。PageRank文件能够直接通过向Google提交请求
获取PR:
http://www.google.com/search?
client=navclient-auto&
ch=0123456789&
features=Rank&
q=info:http://www.domain.com/
在PageRank文件中,只有一行文字,最后的那部分就是PageRank值.
为了在浏览器显示PageRank文件,上面的URL中的每个组成参数都是必须的:
1. "navclient-auto"是参数"client"的值,用来识别工具栏的。
2. 通过参数"q"来提交URL。
3. 参数"features"的值是"Rank",表示请求一个PageRank文件。如果忽略这个参数,Googles的
服务器还是返回旧的XML格式的文件。
4. 参数"ch"传输一个你想提交的URL的校验和给Google。
当Google的工具栏的版本更新时,校验和可能被改变。
Google工具栏请求一个PageRank文件后可以被IE缓存。所以他们的URL和校验和能够简单地在
Internet临时文件夹里面查看到。知道了你的URL,你就可以通过浏览器查看你的PageRank。因为
PageRank文件是被浏览器缓存的且以明文显示,一旦请求之后不会清除。所以在浏览器里面
查看PageRank文件应该没有违反Google的条款。然而,你应该要谨慎,因为工具栏是以他们自己的用户代理
提交给Google的:
Mozilla/4.0 (compatible; GoogleToolbar 1.1.60-deleon; OS SE 4.10)
1.1.60-deleon 是工具栏的版本,当然它可能会改变。OS是你安装的操作系统。所以,
如果没有通过一个代理服务器并且浏览器ID 没有被修改的话,Google能够识别浏览器的请求。
现在,让我们来看看我们如何能够取得新的PageRank值。看看IE的换存,你将注意到PageRank文件
不是从www.google.com而是从IP地址 像216.239.33.102取得的。另外,PageRank文件的URL通常
含有一个"failedip"的参数,它的值被设置为像"216.239.35.102;1111"(它的功能还不是很清楚)
(upsdn注释:就是失效的服务器的IP地址,一般就是上次请求失败的服务器,或者没有更新索引的服务器)
然而,得到新的PageRank很简单。修改URL中的IP地址,新的请求就发给一个有了新的索引的数据
中心。
下面介绍用PHP模拟Toobar的行为直接获取PageRank值:
===================
<?php
//error_reporting(E_ALL);
define('GOOGLE_MAGIC', 0xE6359A60);
//unsigned shift right
function zeroFill($a, $b)
{
$z = hexdec(80000000);
if ($z & $a)
{
$a = ($a>>1);
$a &= (~$z);
$a |= 0x40000000;
$a = ($a>>($b-1));
}
else
{
$a = ($a>>$b);
}
return $a;
}
function mix($a,$b,$c)
{
$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
return array($a,$b,$c);
}
function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC)
{
if(is_null($length))
{
$length = sizeof($url);
}
$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;
while($len >= 12)
{
$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
$mix = mix($a,$b,$c);
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
$k += 12;
$len -= 12;
}
$c += $length;
switch($len) /* all the case statements fall through */
{
case 11: $c+=($ur
【相关文章:】
PHP读取RSS feed源代码(带注释,可读取多个源)
Apache+php+mysql安装与配置图解(最新版)
Apache与PHP的整合过程
PHP原版HTML编码器溢出问题的解决
用PHPINFO来实现PHP的配置统计过程
新手如何使用PHP创建RSS阅读器
半小时精通PHP正则表达式
PHP网页制作常用的正则表达式
PHP+MYSQL+Javascript数据库查询结果的动态显示
如何在Linux下装PHP+JSP
【发表评论】【打印此文】【关闭窗口】【点击数: 】
网友评论:
