Write a software in C #, do not know Google's interface in C # write feeling too troublesome
So in csdn downloaded a copy of the code, changed to the interface with the software query.
Http://www.xssxss.com/pr.php?url=www.google.com
Code
$url = $_get[' url '];
URL get method macro.
Define (' G_pr_get_type_file ', 1); Use fopen () function
Define (' G_pr_get_type_socket ', 2); Use standard Fsocketopen function
Main function to is called
function Getpr ($_url, $gettype =g_pr_get_type_socket) {
$url = ' info: '. $_url;
$ch = GCH (Strord ($url));
$ch = NEWGCH ($ch);
$url =str_replace ("_", "%5f", ' info: '. UrlEncode ($_url));
$GOOGLEPRURL =
"Http://toolbarqueries.google.com/tbr?client=navclient-auto&ch=6"
. $ch. " &ie=utf-8&oe=utf-8&features=rank&q= ". $url;
$PR _str = retrieveurlcontent ($GOOGLEPRURL, $gettype);
Return substr ($PR _str,strrpos ($pr _str, ":") +1);
}
Unsigned shift Right
function Zerofill ($a, $b) {
$z = Hexdec (' 8 '. Implode (' ', Array_fill (0,php_int_size*2-1, ' 0 ')));
if ($z & $a) {
$a = ($a >>1);
$a &= (~ $z);
$a |= hexdec (' 4 '. Implode (', Array_fill (0,php_int_size*2-1, ' 0 ')));
$a = ($a >> ($b-1));
}
else{
$a = ($a >> $b);
}
return $a;
}
Discard bits beyonds.
function Trunkbitforce32bit ($n) {
if (php_int_size <= 4) {
Settype ($n, ' float ');
if ($n < 0) $n + = 4294967296;
return $n;
}
else{
$clearbit = ";
for ($i =0; $i<>< p=""><>
$clearbit. = ' 00 ';
}
for ($i =0; $i <4; $i + +) {
$clearbit. = ' ff ';
}
Return ($n & Hexdec ($clearbit));
}
}
function Bigxor ($m, $n) {
if (function_exists (' Gmp_init ')) {
Return Floatval (Gmp_strval (Gmp_xor ($m, $n)));
//}
else{
return $m ^ $n;
//}
}
function Mix ($a, $b, $c) {
$a = trunkbitforce32bit ($a);
$b = Trunkbitforce32bit ($b);
$c = Trunkbitforce32bit ($c);
$a-= $b; $a = trunkbitforce32bit ($a);
$a-= $c; $a = trunkbitforce32bit ($a);
$a = Bigxor ($a, (Zerofill ($c, 13))); $a = trunkbitforce32bit ($a);
$b-= $c; $b = Trunkbitforce32bit ($b);
$b-= $a; $b = Trunkbitforce32bit ($b);
$b = Bigxor ($b, trunkbitforce32bit ($a <<8)); $b = Trunkbitforce32bit ($b);
$c-= $a; $c = Trunkbitforce32bit ($c);
$c-= $b; $c = Trunkbitforce32bit ($c);
$c = Bigxor ($c, (Zerofill ($b, 13))); $c = Trunkbitforce32bit ($c);
$a-= $b; $a = trunkbitforce32bit ($a);
$a-= $c; $a = trunkbitforce32bit ($a);
$a = Bigxor ($a, (Zerofill ($c))); $a = trunkbitforce32bit ($a);
$b-= $c; $b = Trunkbitforce32bit ($b);
$b-= $a; $b = Trunkbitforce32bit ($b);
$b = Bigxor ($b, trunkbitforce32bit ($a <<16));
$c-= $a; $c = Trunkbitforce32bit ($c);
$c-= $b; $c = Trunkbitforce32bit ($c);
$c = Bigxor ($c, (Zerofill ($b, 5))); $c = Trunkbitforce32bit ($c);
$a-= $b; $a = trunkbitforce32bit ($a);
$a-= $c; $a = trunkbitforce32bit ($a);
$a = Bigxor ($a, (Zerofill ($c, 3)); $a = trunkbitforce32bit ($a);
$b-= $c; $b = Trunkbitforce32bit ($b);
$b-= $a; $b = Trunkbitforce32bit ($b);
$b = Bigxor ($b, trunkbitforce32bit ($a <<10));
$c-= $a; $c = Trunkbitforce32bit ($c);
$c-= $b; $c = Trunkbitforce32bit ($c);
$c = Bigxor ($c, (Zerofill ($b, 15))); $c = Trunkbitforce32bit ($c);
Return Array ($a, $b, $c);
}
function Newgch ($ch) {
$ch = (Trunkbitforce32bit (($ch/7) << 2) |
((Myfmod ($ch)) & 7));
$prbuf = Array ();
$prbuf [0] = $ch;
for ($i = 1; $i < $i + +)
{
$prbuf [$i] = $prbuf [$i-1]-9;
}
$ch = GCH (C32to8bit ($PRBUF));
return $ch;
}
function Myfmod ($x, $y) {
$i = Floor ($x/$y);
Return ($x-$i * $y);
}
function C32to8bit ($arr 32) {
$arr 8 = array ();
for ($i = 0; $i < count ($arr); $i + +) {
for ($bitOrder = $i * 4;
$bitOrder <= $i * 4 + 3; $bitOrder + +) {
$arr 8[$bitOrder] = $arr 32[$i] & 255;
$arr 32[$i] = Zerofill ($arr 32[$i], 8);
}
}
return $arr 8;
}
function GCH ($url, $length =null) {
if (Is_null ($length)) {
$length = sizeof ($url);
}
$init = 0xe6359a60;
$a = 0x9e3779b9;
$b = 0X9E3779B9;
$c = 0xe6359a60;
$k = 0;
$len = $length;
$mixo = Array ();
while ($len >= 12) {
$a + = ($url [$k +0] +trunkbitforce32bit ($url [$k +1]<<8)
+trunkbitforce32bit ($url [$k +2]<<16)
+trunkbitforce32bit ($url [$k +3]<<24)];
$b + = ($url [$k +4] +trunkbitforce32bit ($url [$k +5]<<8)
+trunkbitforce32bit ($url [$k +6]<<16)
+trunkbitforce32bit ($url [$k +7]<<24)];
$c + = ($url [$k +8] +trunkbitforce32bit ($url [$k +9]<<8)
+trunkbitforce32bit ($url [$k +10]<<16)
+trunkbitforce32bit ($url [$k +11]<<24)];
$mixo = Mix ($a, $b, $c);
$a = $mixo [0]; $b = $mixo [1]; $c = $mixo [2];
$k + = 12;
$len-= 12;
}
$c + = $length;
Switch ($len) {
Case 11:
$c + = Trunkbitforce32bit ($url [$k +10]<<24);
Case 10:
$c +=trunkbitforce32bit ($url [$k +9]<<16);
Case 9:
$c +=trunkbitforce32bit ($url [$k +8]<<8);
Case 8:
$b +=trunkbitforce32bit ($url [$k +7]<<24);
Case 7:
$b +=trunkbitforce32bit ($url [$k +6]<<16);
Case 6:
$b +=trunkbitforce32bit ($url [$k +5]<<8);
Case 5:
$b +=trunkbitforce32bit ($url [$k +4]);
Case 4:
$a +=trunkbitforce32bit ($url [$k +3]<<24);
Case 3:
$a +=trunkbitforce32bit ($url [$k +2]<<16);
Case 2:
$a +=trunkbitforce32bit ($url [$k +1]<<8);
Case 1:
$a +=trunkbitforce32bit ($url [$k +0]);
}
$mixo = Mix ($a, $b, $c);
$mixo [2] = Trunkbitforce32bit ($mixo [2]);
if ($mixo [2] < 0) {
Return (
Hexdec (' 1 '.
Implode ("',
Array_fill (0,php_int_size*2, ' 0 ')))
+ $mixo [2]);
}
else{
return $mixo [2];
}
}
Converts a string to an array of integers
containing the numeric value of the Char
function Strord ($string) {
for ($i =0; $i<>< p=""><>
$result [$i] = Ord ($string {$i});
}
return $result;
}
Return URL page content or False if failed.
function Retrieveurlcontent ($url, $gettype) {
Switch ($gettype) {
Case G_pr_get_type_file:
Return Retrieveurlcontentbyfile ($url);
Break
Default
Return Retrieveurlcontentbysocket ($url);
Break
}
}
function Retrieveurlcontentbyfile ($url) {
$FD = @fopen ($url, "R");
if (! $fd) {
return false;
} www.2cto.com
$result = "";
while ($buffer = Fgets ($FD, 4096)) {
$result. = $buffer;
}
Fclose ($FD);
return $result;
}
function Retrieveurlcontentbysocket ($url,
$host = "",
$port = 80,
$timeout =30) {
if ($host = = "") {
if (! ( $pos = Strpos ($url, '://'))) {
return false;
}
$host = substr ($url,
$pos +3,
Strpos ($url, '/', $pos +3)-$pos-3);
$uri = substr ($url, Strpos ($url, '/', $pos +3));
}
else{
$uri = $url;
}
$request = "GET". $uri. " Http/1.0\r\n "
." Host: ". $host." \ r \ n "
." Accept: */*\r\n "
." User-agent:zealget\r\n "
." \ r \ n ";
$sHnd = @fsockopen ($host, $port, $errno, $errstr, $timeout);
if (! $sHnd) {
return false;
}
@fputs ($sHnd, $request);
Get Source
$result = "";
while (!feof ($sHnd)) {
$result. = Fgets ($sHnd, 4096);
}
Fclose ($SHND);
$headerend = Strpos ($result, "\r\n\r\n");
if (Is_bool ($headerend))
{
return $result;
}
else{
Return substr ($result, $headerend +4);
}
}
echo GETPR ($url);
?>
From Shine's Sacred paradise-〃
http://www.bkjia.com/PHPjc/478515.html www.bkjia.com true http://www.bkjia.com/PHPjc/478515.html techarticle write a software in C #, do not know that Google's interface with C # write feel too troublesome so in csdn downloaded a code, changed to use Software query interface. HTTP://WWW.XSSXSS.COM/PR.PHP?URL=WWW.G ...