找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1151|回复: 0
打印 上一主题 下一主题

Google PR查询接口checksum新算法第1/2页

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 09:22:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            取而代之的是一大段“In your email, please send us the entire code displayed below”之类的Google terms_of_service错误提示信息。看来是原先的接口已经失效了。
但我装在Firefox工具栏的扩展插件SearchStatus仍然能够正常解析出每个受访页的PR值,找到 SearchStatus 的插件包解开来看源码,果然是使用了不一样的验证码生成算法,在原先的 checksum 生成之后,还需要再进行一次计算,两次演算之后得到的才是正确的ch参数。
于是拿现成的js代码改造一番之后,新的PHP版本的 Google PageRank 查询接口方法就出来了。经过本地测试之后,谁想传到服务器之后又出现了该死的 terms_of_service 错误提示。把checksum的计算过程一步步打出来,发现经过了几次右位移之后本地和服务器上的数字就不一样了。这才想到服务器是64位机,32位系统下位移之后应该被cut掉的bit在那里就活得好好的。加了个 trunkbitForce32bit 方法,对所有算术运算之后的数值进行高位屏蔽,算是搞定了64位系统下的多余位问题。结果拿到32位Linux环境下跑又不兼容了,原因是PHP在进行算术处理出现溢出时,会自动尝试将int转为float。当发生的是负数溢出时,这一操作在Windows下能正确保留精度,但在Linux下就有问题了。
下面这段代码:
$a = -4294967295;
echo dechex($a)."
\n";
if ( $a 1[url=]2[/url][url=]下一页[/url][url=]阅读全文[/url]
            
您可能感兴趣的文章:
  • Google Voice 短信发送接口PHP开源版(2010.5更新)
  • 利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
  • php调用google接口生成二维码示例
  • Golang极简入门教程(二):方法和接口
  • GO语io包的常用接口
  • Go语言中接口组合的实现方法
  • Go语言服务器开发实现最简单HTTP的GET与POST接口
  • Go语言接口用法实例
  • Go语言中io.Reader和io.Writer的详解与实现
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端