View Full Version : کلاسی برای تشخیص پیج رنک گوگل یک سایت
sara_aryanfar
شنبه 31 فروردین 1392, 13:04 عصر
با سلام دوستان با چه کدی می توان پیج رنک یک سایت رو به دست آورد البته منظورم پیج رنگ گوگل هست ممنون
behrozi.ir
شنبه 31 فروردین 1392, 13:13 عصر
سلام
اگر منظورتون این هست که تو قالب سایت، پیج رنک هم نشان داده بشه میتونید از سایت های زیر استفاده کنید:
http://www.prchecker.net
http://www.prchecker.info
سایت های فوق کد پیج رنک مختص به سایت شما را تولید میکنند
sara_aryanfar
شنبه 31 فروردین 1392, 14:01 عصر
خیر دوست من من می خوام که خودم بتونم با دادن ی دامنه سایت خودم پیج رنک اون رو به دست بیارم نه اینکه اون رو نشون بدم
sara_aryanfar
دوشنبه 09 اردیبهشت 1392, 15:45 عصر
از دوستان هیچکس در این مورد کار نکرده؟
RED-C0DE
دوشنبه 09 اردیبهشت 1392, 22:18 عصر
از api های گوگل استفاده کنید
یکی از کلاس هایی ک از این سرویس گوگل استفاده میکنه:
http://snipplr.com/view/48906/googlepagerank--class-to-get-pagerank-info-for-a-url/
sara_aryanfar
پنج شنبه 12 اردیبهشت 1392, 13:52 عصر
من این کلاس رو قبلا پیدا کردم اما فقط مقدار -1 رو بر می گردونه
کامبیز اسدزاده
پنج شنبه 12 اردیبهشت 1392, 14:27 عصر
من این کلاس رو قبلا پیدا کردم اما فقط مقدار -1 رو بر می گردونه
حق با شماست... -۱ بر میگردونه...
و دلیلشم این هست : The remote server returned an error: (403) Forbidden.
احتمالا آدرس بررسی لینک صحیح نیست و یا دسترسی چیزی میخواد برای برگشت دادن مقدار... من بررسیش میکنم ببینم در این زمینه چکار میشه کرد.
کامبیز اسدزاده
پنج شنبه 12 اردیبهشت 1392, 14:31 عصر
خب اصلاح شد دوست عزیز مشکلی داشت که حل شد :)
public class GooglePageRank
{
/// <summary>
/// Returns the PageRank of the given URL. Return values are 0 through 10 or
/// -1 (N/A), which indicates there was an error or the URL is not in the
/// Google index.
/// </summary>
/// <param name="url">URL to test</param>
/// <returns></returns>
public static int GetPageRank(string url)
{
int rank = -1;
try
{
// Form complete URL
url = String.Format("http://toolbarqueries.google.com/tbr" +
"?client=navclient-auto&features=Rank&ch={0}&q=info:{1}",
ComputeHash(url), UrlEncode(url));
// Download page
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
StreamReader stream = new StreamReader(request.GetResponse().GetResponseStre am());
string response = stream.ReadToEnd();
// Parse page rank value
string[] arr = response.Split(':');
if (arr.Length == 3)
rank = int.Parse(arr[2]);
}
catch (Exception)
{
// Do nothing but return -1;
}
return rank;
}
/// <summary>
/// URL-encodes the given URL. Handy when HttpUtility is not available
/// </summary>
/// <param name="url">URL to encode</param>
/// <returns></returns>
private static string UrlEncode(string url)
{
StringBuilder builder = new StringBuilder();
foreach (char c in url)
{
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9'))
builder.Append(c);
else if (c == ' ')
builder.Append('+');
else if ("()*-_.!".IndexOf(c) >= 0)
builder.Append(c);
else
builder.AppendFormat("%{0:X2}", (byte)c);
}
return builder.ToString();
}
/// <summary>
/// Computes a hash value required by Google
/// </summary>
private static string ComputeHash(string url)
{
UInt32 a, b;
UInt32 c = 0xE6359A60;
int k = 0;
int len;
// Modify URL
url = string.Format("info:{0}", url);
a = b = 0x9E3779B9;
len = url.Length;
while (len >= 12)
{
a += (UInt32)(url[k + 0] + (url[k + 1] << 8) + (url[k + 2] << 16) + (url[k + 3] << 24));
b += (UInt32)(url[k + 4] + (url[k + 5] << 8) + (url[k + 6] << 16) + (url[k + 7] << 24));
c += (UInt32)(url[k + 8] + (url[k + 9] << 8) + (url[k + 10] << 16) + (url[k + 11] << 24));
Mix(ref a, ref b, ref c);
k += 12;
len -= 12;
}
c += (UInt32)url.Length;
switch (len)
{
case 11:
c += (UInt32)(url[k + 10] << 24);
goto case 10;
case 10:
c += (UInt32)(url[k + 9] << 16);
goto case 9;
case 9:
c += (UInt32)(url[k + 8] << 8);
goto case 8;
case 8:
b += (UInt32)(url[k + 7] << 24);
goto case 7;
case 7:
b += (UInt32)(url[k + 6] << 16);
goto case 6;
case 6:
b += (UInt32)(url[k + 5] << 8);
goto case 5;
case 5:
b += (UInt32)(url[k + 4]);
goto case 4;
case 4:
a += (UInt32)(url[k + 3] << 24);
goto case 3;
case 3:
a += (UInt32)(url[k + 2] << 16);
goto case 2;
case 2:
a += (UInt32)(url[k + 1] << 8);
goto case 1;
case 1:
a += (UInt32)(url[k + 0]);
break;
default:
break;
}
Mix(ref a, ref b, ref c);
return string.Format("6{0}", c);
}
/// <summary>
/// ComputeHash() helper method
/// </summary>
private static void Mix(ref UInt32 a, ref UInt32 b, ref UInt32 c)
{
a -= b; a -= c; a ^= c >> 13;
b -= c; b -= a; b ^= a << 8;
c -= a; c -= b; c ^= b >> 13;
a -= b; a -= c; a ^= c >> 12;
b -= c; b -= a; b ^= a << 16;
c -= a; c -= b; c ^= b >> 5;
a -= b; a -= c; a ^= c >> 3;
b -= c; b -= a; b ^= a << 10;
c -= a; c -= b; c ^= b >> 15;
}
}
کامبیز اسدزاده
پنج شنبه 12 اردیبهشت 1392, 14:32 عصر
و در نهایت با تست زیر نتیجه رنک ۳ رو برا همین وب سایت برگشت داد.
MessageBox.Show(GooglePageRank.GetPageRank("barnamenevis.org").ToString());
soshiyano70
چهارشنبه 27 اسفند 1393, 20:58 عصر
سلام
این سایت پیج رنکش فایک هست؟
http://sheng-long.net
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.