|
今天看到Google PageRank ChecksumPHP代码才发现上次发布的库写的很烂,我根本没有去理解里面的意思,有很多函数是没有必要的,如<< >>位操作都已经是现成的,我怎么还照着vb代码改写,真是愚蠢。 为了弥补我的愚蠢,把php代码改编成的.net库,发布出来。
Google PageRank 链接库下载地址:http://code.knowsky.com/down/2847.html
演示地址:http://pr.csharphack.org/checkpr.aspx
使用实例: //得到Pagerank值 Console.WriteLine(PRCrack.PageRank.CheckPR("http://www.google.com")); //得到pagerank checksum Console.WriteLine(PRCrack.PageRank.OutputCheckSum("http://www.google.com",1));
包含函数: //输出指定网址的pagerank checksum //参数m_Version指定1,表示得到新版本checksum,Google Toolbar版本>>=2.0.114 //参数m_Version指定0,表示得到老版本checksum,Google Toolbar版本<2.0.114 public static string OutputCheckSum(string m_Url,int m_Version)
//输出制定网址的pagerank public static string CheckPR(string m_Url) Checksum 算法源代码请看详细内容
1using System; 2 3namespace PRCrack 4{ 5 /// <summary> 6 /// Google PageRank的Checksum算法。 7 /// 作者:4111y80y 8 /// 日期:2005年1月22日 9 /// email:sillyboy@china.com 10 /// </summary> 11 class CheckSum 12 { 13 public CheckSum() 14 { 15 // 16 // TODO: 在此处添加构造函数逻辑 17 // 18 } 19 20 uint GOOGLE_MAGIC=0xE6359A60; 21 22 private uint zeroFill(uint a, int b) 23 { 24 checked 25 { 26 uint z = 0x80000000; 27 if (Convert.ToBoolean(z & a)) 28 { 29 a = (a>>1); 30 a &= (~z); 31 a = 0x40000000; 32 a = (a>>(b-1)); 33 } 34 else 35 { 36 a = (a>>b); 37 } 38 } 39 return a; 40 } 41 42 private uint[] mix(uint a,uint b,uint c) 43 { 44 a -= b; a -= c; a ^= (uint)(zeroFill(c,13)); 45 b -= c; b -= a; b ^= (uint)(a<<8);
上一篇:使用ADO.net将数据导出到Excel并提供下载
下一篇:ASPImage组件的实现过程
|