PDA

View Full Version : url بده گوگل pagerank تحویل بگیر "string"



raravaice
دوشنبه 10 دی 1386, 02:52 صبح
سلام
خیلی وقته که دنبال چنین چیزی میگشتم ولی متاسفانه نمونه شو تو هیچ سایت فارسی پیدا نکردم و انگلیسی ها هم یا کامپوننت بود یا php ولی بلاخره درش اوردم.




Option Strict Off
Option Explicit On

Imports System
Imports System.IO
Imports System.Net
Imports System.Text
Imports Microsoft.VisualBasic
Imports Microsoft.VisualBasic.CompilerServices
Imports System.Runtime.CompilerServices
Public Class pagerank
Private Const GOOGLE_MAGIC As Integer = -432694688
Private C_PageRank As Byte
Public Sub New(ByVal webSiteUrl As String)
PR(webSiteUrl)
End Sub
Public ReadOnly Property PageRank() As String
Get
Return C_PageRank
End Get
End Property

Private Sub PR(ByVal webSiteUrl As String)
Dim read As WebClient = New WebClient
Dim result As String
Dim enc As UTF8Encoding = New UTF8Encoding
Try
Dim reader As String = enc.GetString(read.DownloadData(GetRankUrl(webSite Url)))
If reader <> "" Then
result = reader.Substring(reader.Length - 3, 2)
result = result.Replace(":", "")
Else : result = "0"
End If
Catch ex As Exception
result = "0"
End Try
C_PageRank = result
End Sub

Private Shared Function GetRankUrl(ByVal webSiteUrl As String) As String
Dim str2 As String = ("info:" & webSiteUrl)
Return ("http://www.google.com/search?client=navclient-auto&ch=" & CalculateChecksum(webSiteUrl) & "&features=Rank&q=" & str2)
End Function
Private Shared Function GoogleCH(ByVal sURL As Object) As Object
Dim v_obj As Object
Dim v_obj1 As Object
Dim v_obj2 As Object
Dim v_obj4 As Object
Dim v_obj6 As Object
Dim v_obj7 As Object
Dim v_obj8 As Object
Dim v_arrobj As Object()
Dim v_obj5 As Object = Microsoft.VisualBasic.Strings.Len(sURL)
v_obj = -1640531527
v_obj1 = -1640531527
v_obj2 = GOOGLE_MAGIC
v_obj6 = 0
v_obj4 = v_obj5
Do While ObjectType.ObjTst(v_obj4, 12, False) >= 0
v_obj = uadd(v_obj, uadd(gc(sURL, ObjectType.AddObj(v_obj6, 0)), uadd(sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8), uadd(sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16), sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24)))))
v_obj1 = uadd(v_obj1, uadd(gc(sURL, ObjectType.AddObj(v_obj6, 4)), uadd(sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8), uadd(sl(gc(sURL, ObjectType.AddObj(v_obj6, 6)), 16), sl(gc(sURL, ObjectType.AddObj(v_obj6, 7)), 24)))))
v_obj2 = uadd(v_obj2, uadd(gc(sURL, ObjectType.AddObj(v_obj6, 8)), uadd(sl(gc(sURL, ObjectType.AddObj(v_obj6, 9)), 8), uadd(sl(gc(sURL, ObjectType.AddObj(v_obj6, 10)), 16), sl(gc(sURL, ObjectType.AddObj(v_obj6, 11)), 24)))))
v_obj7 = mix(v_obj, v_obj1, v_obj2)
v_arrobj = New Object() {0}
v_obj = LateBinding.LateIndexGet(v_obj7, v_arrobj, Nothing)
v_arrobj = New Object() {1}
v_obj1 = LateBinding.LateIndexGet(v_obj7, v_arrobj, Nothing)
v_arrobj = New Object() {2}
v_obj2 = LateBinding.LateIndexGet(v_obj7, v_arrobj, Nothing)
v_obj6 = ObjectType.AddObj(v_obj6, 12)
v_obj4 = ObjectType.SubObj(v_obj4, 12)
Loop
v_obj2 = uadd(v_obj2, v_obj5)
v_obj8 = v_obj4
If ObjectType.ObjTst(v_obj8, 11, False) = 0 Then
v_obj2 = uadd(v_obj2, sl(gc(sURL, ObjectType.AddObj(v_obj6, 10)), 24))
v_obj2 = uadd(v_obj2, sl(gc(sURL, ObjectType.AddObj(v_obj6, 9)), 16))
v_obj2 = uadd(v_obj2, sl(gc(sURL, ObjectType.AddObj(v_obj6, 8)), 8))
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 7)), 24))
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 6)), 16))
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8))
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8))
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)))
Else
If ObjectType.ObjTst(v_obj8, 10, False) = 0 Then
v_obj2 = uadd(v_obj2, sl(gc(sURL, ObjectType.AddObj(v_obj6, 9)), 16))
v_obj2 = uadd(v_obj2, sl(gc(sURL, ObjectType.AddObj(v_obj6, 8)), 8))
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 7)), 24))
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 6)), 16))
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8))
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8))
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)))
Else
If ObjectType.ObjTst(v_obj8, 9, False) = 0 Then
v_obj2 = uadd(v_obj2, sl(gc(sURL, ObjectType.AddObj(v_obj6, 8)), 8))
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 7)), 24))
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 6)), 16))
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8))
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8))
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)))
Else
If ObjectType.ObjTst(v_obj8, 8, False) = 0 Then
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 7)), 24))
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 6)), 16))
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8))
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8))
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)))
Else
If ObjectType.ObjTst(v_obj8, 7, False) = 0 Then
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 6)), 16))
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8))
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8))
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)))
Else
If ObjectType.ObjTst(v_obj8, 6, False) = 0 Then
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8))
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8))
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)))
Else
If ObjectType.ObjTst(v_obj8, 5, False) = 0 Then
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8))
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)))
Else
If ObjectType.ObjTst(v_obj8, 4, False) = 0 Then
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8))
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)))
Else
If ObjectType.ObjTst(v_obj8, 3, False) = 0 Then
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16))
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8))
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)))
Else
If ObjectType.ObjTst(v_obj8, 2, False) = 0 Then
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8))
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)))
Else
If ObjectType.ObjTst(v_obj8, 1, False) = 0 Then
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)))
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
v_obj7 = mix(v_obj, v_obj1, v_obj2)
v_arrobj = New Object() {2}
Return LateBinding.LateIndexGet(v_obj7, v_arrobj, Nothing)
End Function
Private Shared Function uadd(ByVal L1 As Object, ByVal L2 As Object) As Object
Dim obj2 As Object = ObjectType.BitAndObj(L1, &HFFFFFF)
Dim obj3 As Object = ObjectType.IDivObj(ObjectType.BitAndObj(L1, &H7F000000), &H1000000)
If (ObjectType.ObjTst(L1, 0, False) < 0) Then
obj3 = ObjectType.BitOrObj(obj3, &H80)
End If
Dim obj4 As Object = ObjectType.BitAndObj(L2, &HFFFFFF)
Dim obj5 As Object = ObjectType.IDivObj(ObjectType.BitAndObj(L2, &H7F000000), &H1000000)
If (ObjectType.ObjTst(L2, 0, False) < 0) Then
obj5 = ObjectType.BitOrObj(obj5, &H80)
End If
Dim obj7 As Object = ObjectType.AddObj(obj3, obj5)
Dim obj6 As Object = ObjectType.AddObj(obj2, obj4)
If BooleanType.FromObject(ObjectType.BitAndObj(obj6, &H1000000)) Then
obj7 = ObjectType.AddObj(obj7, 1)
End If
Dim obj8 As Object = ObjectType.AddObj(ObjectType.BitAndObj(obj6, &HFFFFFF), ObjectType.MulObj(ObjectType.BitAndObj(obj7, &H7F), &H1000000))
If BooleanType.FromObject(ObjectType.BitAndObj(obj7, &H80)) Then
obj8 = ObjectType.BitOrObj(obj8, -2147483648)
End If
Return obj8
End Function
Private Shared Function CalculateChecksum(ByVal sURL As String) As String
Return ("6" & StringType.FromObject(ReinterpretSignedAsUnsigned( RuntimeHelpers.GetObjectValue(GoogleCH(("info:" & sURL))))))
End Function
Private Shared Function gc(ByVal s As Object, ByVal i As Object) As Object
Return Strings.Asc(Strings.Mid(StringType.FromObject(s), IntegerType.FromObject(ObjectType.AddObj(i, 1)), 1))
End Function
Private Shared Function sl(ByVal x As Object, ByVal n As Object) As Object
If (ObjectType.ObjTst(n, 0, False) = 0) Then
Return RuntimeHelpers.GetObjectValue(x)
End If
Dim obj5 As Object = LongType.FromObject(ObjectType.PowObj(2, ObjectType.SubObj(ObjectType.SubObj(&H20, n), 1)))
Dim obj3 As Object = ObjectType.MulObj(ObjectType.BitAndObj(x, ObjectType.SubObj(obj5, 1)), LongType.FromObject(ObjectType.PowObj(2, n)))
If BooleanType.FromObject(ObjectType.BitAndObj(x, obj5)) Then
obj3 = ObjectType.BitOrObj(obj3, -2147483648)
End If
Return RuntimeHelpers.GetObjectValue(obj3)
End Function
Private Shared Function mix(ByVal ia As Object, ByVal ib As Object, ByVal ic As Object) As Object
Dim v_obj As Object = ia
Dim v_obj1 As Object = ib
Dim v_obj2 As Object = ic
v_obj = usub(v_obj, v_obj1)
v_obj = usub(v_obj, v_obj2)
v_obj = ObjectType.BitXorObj(v_obj, zeroFill(v_obj2, 13))
v_obj1 = usub(v_obj1, v_obj2)
v_obj1 = usub(v_obj1, v_obj)
v_obj1 = ObjectType.BitXorObj(v_obj1, sl(v_obj, 8))
v_obj2 = usub(v_obj2, v_obj)
v_obj2 = usub(v_obj2, v_obj1)
v_obj2 = ObjectType.BitXorObj(v_obj2, zeroFill(v_obj1, 13))
v_obj = usub(v_obj, v_obj1)
v_obj = usub(v_obj, v_obj2)
v_obj = ObjectType.BitXorObj(v_obj, zeroFill(v_obj2, 12))
v_obj1 = usub(v_obj1, v_obj2)
v_obj1 = usub(v_obj1, v_obj)
v_obj1 = ObjectType.BitXorObj(v_obj1, sl(v_obj, 16))
v_obj2 = usub(v_obj2, v_obj)
v_obj2 = usub(v_obj2, v_obj1)
v_obj2 = ObjectType.BitXorObj(v_obj2, zeroFill(v_obj1, 5))
v_obj = usub(v_obj, v_obj1)
v_obj = usub(v_obj, v_obj2)
v_obj = ObjectType.BitXorObj(v_obj, zeroFill(v_obj2, 3))
v_obj1 = usub(v_obj1, v_obj2)
v_obj1 = usub(v_obj1, v_obj)
v_obj1 = ObjectType.BitXorObj(v_obj1, sl(v_obj, 10))
v_obj2 = usub(v_obj2, v_obj)
v_obj2 = usub(v_obj2, v_obj1)
v_obj2 = ObjectType.BitXorObj(v_obj2, zeroFill(v_obj1, 15))
Return New Object() {v_obj, v_obj1, v_obj2, Nothing}

End Function
Private Shared Function ReinterpretSignedAsUnsigned(ByVal x As Object) As Object
If (ObjectType.ObjTst(x, 0, False) < 0) Then
x = ObjectType.AddObj(x, 4294967296)
End If
Return RuntimeHelpers.GetObjectValue(x)
End Function
Private Shared Function usub(ByVal L1 As Object, ByVal L2 As Object) As Object
Dim obj2 As Object = ObjectType.BitAndObj(L1, &HFFFFFF)
Dim obj3 As Object = ObjectType.IDivObj(ObjectType.BitAndObj(L1, &H7F000000), &H1000000)
If (ObjectType.ObjTst(L1, 0, False) < 0) Then
obj3 = ObjectType.BitOrObj(obj3, &H80)
End If
Dim obj4 As Object = ObjectType.BitAndObj(L2, &HFFFFFF)
Dim obj5 As Object = ObjectType.IDivObj(ObjectType.BitAndObj(L2, &H7F000000), &H1000000)
If (ObjectType.ObjTst(L2, 0, False) < 0) Then
obj5 = ObjectType.BitOrObj(obj5, &H80)
End If
Dim obj7 As Object = ObjectType.SubObj(obj3, obj5)
Dim obj6 As Object = ObjectType.SubObj(obj2, obj4)
If (ObjectType.ObjTst(obj6, 0, False) < 0) Then
obj7 = ObjectType.SubObj(obj7, 1)
obj6 = ObjectType.AddObj(obj6, &H1000000)
End If
Dim obj8 As Object = ObjectType.AddObj(obj6, ObjectType.MulObj(ObjectType.BitAndObj(obj7, &H7F), &H1000000))
If BooleanType.FromObject(ObjectType.BitAndObj(obj7, &H80)) Then
obj8 = ObjectType.BitOrObj(obj8, -2147483648)
End If
Return obj8
End Function
Private Shared Function zeroFill(ByVal a As Object, ByVal b As Object) As Object
Dim objectValue As Object
If BooleanType.FromObject(ObjectType.BitAndObj(-2147483648, a)) Then
objectValue = sr(ObjectType.BitOrObj(ObjectType.BitAndObj(sr(a, 1), &H7FFFFFFF), &H40000000), ObjectType.SubObj(b, 1))
Else
objectValue = sr(a, RuntimeHelpers.GetObjectValue(b))
End If
Return objectValue
End Function
Private Shared Function sr(ByVal x As Object, ByVal n As Object) As Object
Dim obj4 As Object
If (ObjectType.ObjTst(n, 0, False) = 0) Then
Return RuntimeHelpers.GetObjectValue(x)
End If
Dim obj3 As Object = ObjectType.BitAndObj(x, &H7FFFFFFF)
If (ObjectType.ObjTst(n, &H1F, False) = 0) Then
obj4 = 0
Else
obj4 = ObjectType.IDivObj(obj3, LongType.FromObject(ObjectType.PowObj(2, n)))
End If
If (ObjectType.ObjTst(obj3, x, False) <> 0) Then
obj4 = ObjectType.BitOrObj(obj4, LongType.FromObject(ObjectType.PowObj(2, ObjectType.SubObj(ObjectType.SubObj(&H20, n), 1))))
End If
Return RuntimeHelpers.GetObjectValue(obj4)
End Function
End Class



این برنامه یه کلاس برای vb.net هست که به صورت زیر فراخوانی میشه.



Dim a As New pagerank(Request.QueryString("url"))


Response.Write(a.PageRank)



البته یه کم شلوغه علتش هم اینه که از php برگردوندمش دوستان اگر میتونن کوتاه ترش کنن زحمتش با شما ، بزارین اینجا ما هم استفاده کنیم.

موفق باشید

merlin_vista
دوشنبه 10 دی 1386, 07:56 صبح
میشه با C# هم بگزارید !؟!!

raravaice
دوشنبه 10 دی 1386, 08:31 صبح
سلام

حقیقتش حوصله نوشتنشو ندارم همین 2 روز وقتمو گرفت برو تبدیلش کن

http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx

اگرم خاصتی همینو کامپایل کن تو برنامت رفرنس بگیر.
ورودی url
خروجی page rank با مقدار string هست.
موفق باشی

hesam_a110
دوشنبه 10 دی 1386, 12:01 عصر
درورد
اینم قسمت سختش کدC# :گیج: :لبخند: :لبخند: :لبخند: :لبخند: :قهقهه: :قهقهه: :قهقهه: :قهقهه:



using System.IO;
using System.Net;
using System.Text;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using System.Runtime.CompilerServices;
public class pagerank
{
private const int GOOGLE_MAGIC = -432694688;
private byte C_PageRank;
public pagerank(string webSiteUrl)
{
PR(webSiteUrl);
}
public string PageRank {
get { return C_PageRank; }
}

private void PR(string webSiteUrl)
{
WebClient read = new WebClient();
string result;
UTF8Encoding enc = new UTF8Encoding();
try {
string reader = enc.GetString(read.DownloadData(GetRankUrl(webSite Url)));
if (reader != "") {
result = reader.Substring(reader.Length - 3, 2);
result = result.Replace(":", "");
}
else {
result = "0";
}
}
catch (Exception ex) {
result = "0";
}
C_PageRank = result;
}

private static string GetRankUrl(string webSiteUrl)
{
string str2 = ("info:" + webSiteUrl);
return ("http://www.google.com/search?client=navclient-auto&ch=" + CalculateChecksum(webSiteUrl) + "&features=Rank&q=" + str2);
}
private static object GoogleCH(object sURL)
{
object v_obj;
object v_obj1;
object v_obj2;
object v_obj4;
object v_obj6;
object v_obj7;
object v_obj8;
object[] v_arrobj;
object v_obj5 = Microsoft.VisualBasic.Strings.Len(sURL);
v_obj = -1640531527;
v_obj1 = -1640531527;
v_obj2 = GOOGLE_MAGIC;
v_obj6 = 0;
v_obj4 = v_obj5;
while (ObjectType.ObjTst(v_obj4, 12, false) >= 0) {
v_obj = uadd(v_obj, uadd(gc(sURL, ObjectType.AddObj(v_obj6, 0)), uadd(sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8), uadd(sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16), sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24)))));
v_obj1 = uadd(v_obj1, uadd(gc(sURL, ObjectType.AddObj(v_obj6, 4)), uadd(sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8), uadd(sl(gc(sURL, ObjectType.AddObj(v_obj6, 6)), 16), sl(gc(sURL, ObjectType.AddObj(v_obj6, 7)), 24)))));
v_obj2 = uadd(v_obj2, uadd(gc(sURL, ObjectType.AddObj(v_obj6, 8)), uadd(sl(gc(sURL, ObjectType.AddObj(v_obj6, 9)), 8), uadd(sl(gc(sURL, ObjectType.AddObj(v_obj6, 10)), 16), sl(gc(sURL, ObjectType.AddObj(v_obj6, 11)), 24)))));
v_obj7 = mix(v_obj, v_obj1, v_obj2);
v_arrobj = new object[] {0};
v_obj = LateBinding.LateIndexGet(v_obj7, v_arrobj, null);
v_arrobj = new object[] {1};
v_obj1 = LateBinding.LateIndexGet(v_obj7, v_arrobj, null);
v_arrobj = new object[] {2};
v_obj2 = LateBinding.LateIndexGet(v_obj7, v_arrobj, null);
v_obj6 = ObjectType.AddObj(v_obj6, 12);
v_obj4 = ObjectType.SubObj(v_obj4, 12);
}
v_obj2 = uadd(v_obj2, v_obj5);
v_obj8 = v_obj4;
if (ObjectType.ObjTst(v_obj8, 11, false) == 0) {
v_obj2 = uadd(v_obj2, sl(gc(sURL, ObjectType.AddObj(v_obj6, 10)), 24));
v_obj2 = uadd(v_obj2, sl(gc(sURL, ObjectType.AddObj(v_obj6, 9)), 16));
v_obj2 = uadd(v_obj2, sl(gc(sURL, ObjectType.AddObj(v_obj6, 8)), 8));
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 7)), 24));
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 6)), 16));
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8));
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8));
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)));
}
else {
if (ObjectType.ObjTst(v_obj8, 10, false) == 0) {
v_obj2 = uadd(v_obj2, sl(gc(sURL, ObjectType.AddObj(v_obj6, 9)), 16));
v_obj2 = uadd(v_obj2, sl(gc(sURL, ObjectType.AddObj(v_obj6, 8)), 8));
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 7)), 24));
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 6)), 16));
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8));
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8));
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)));
}
else {
if (ObjectType.ObjTst(v_obj8, 9, false) == 0) {
v_obj2 = uadd(v_obj2, sl(gc(sURL, ObjectType.AddObj(v_obj6, 8)), 8));
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 7)), 24));
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 6)), 16));
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8));
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8));
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)));
}
else {
if (ObjectType.ObjTst(v_obj8, 8, false) == 0) {
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 7)), 24));
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 6)), 16));
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8));
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8));
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)));
}
else {
if (ObjectType.ObjTst(v_obj8, 7, false) == 0) {
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 6)), 16));
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8));
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8));
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)));
}
else {
if (ObjectType.ObjTst(v_obj8, 6, false) == 0) {
v_obj1 = uadd(v_obj1, sl(gc(sURL, ObjectType.AddObj(v_obj6, 5)), 8));
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8));
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)));
}
else {
if (ObjectType.ObjTst(v_obj8, 5, false) == 0) {
v_obj1 = uadd(v_obj1, gc(sURL, ObjectType.AddObj(v_obj6, 4)));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8));
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)));
}
else {
if (ObjectType.ObjTst(v_obj8, 4, false) == 0) {
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 3)), 24));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8));
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)));
}
else {
if (ObjectType.ObjTst(v_obj8, 3, false) == 0) {
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 2)), 16));
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8));
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)));
}
else {
if (ObjectType.ObjTst(v_obj8, 2, false) == 0) {
v_obj = uadd(v_obj, sl(gc(sURL, ObjectType.AddObj(v_obj6, 1)), 8));
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)));
}
else {
if (ObjectType.ObjTst(v_obj8, 1, false) == 0) {
v_obj = uadd(v_obj, gc(sURL, ObjectType.AddObj(v_obj6, 0)));
}
}
}
}
}
}
}
}
}
}
}
v_obj7 = mix(v_obj, v_obj1, v_obj2);
v_arrobj = new object[] {2};
return LateBinding.LateIndexGet(v_obj7, v_arrobj, null);
}
private static object uadd(object L1, object L2)
{
object obj2 = ObjectType.BitAndObj(L1, 16777215);
object obj3 = ObjectType.IDivObj(ObjectType.BitAndObj(L1, 2130706432), 16777216);
if ((ObjectType.ObjTst(L1, 0, false) < 0)) {
obj3 = ObjectType.BitOrObj(obj3, 128);
}
object obj4 = ObjectType.BitAndObj(L2, 16777215);
object obj5 = ObjectType.IDivObj(ObjectType.BitAndObj(L2, 2130706432), 16777216);
if ((ObjectType.ObjTst(L2, 0, false) < 0)) {
obj5 = ObjectType.BitOrObj(obj5, 128);
}
object obj7 = ObjectType.AddObj(obj3, obj5);
object obj6 = ObjectType.AddObj(obj2, obj4);
if (BooleanType.FromObject(ObjectType.BitAndObj(obj6, 16777216))) {
obj7 = ObjectType.AddObj(obj7, 1);
}
object obj8 = ObjectType.AddObj(ObjectType.BitAndObj(obj6, 16777215), ObjectType.MulObj(ObjectType.BitAndObj(obj7, 127), 16777216));
if (BooleanType.FromObject(ObjectType.BitAndObj(obj7, 128))) {
obj8 = ObjectType.BitOrObj(obj8, -2147483648l);
}
return obj8;
}
private static string CalculateChecksum(string sURL)
{
return ("6" + StringType.FromObject(ReinterpretSignedAsUnsigned( RuntimeHelpers.GetObjectValue(GoogleCH(("info:" + sURL))))));
}
private static object gc(object s, object i)
{
return Strings.Asc(Strings.Mid(StringType.FromObject(s), IntegerType.FromObject(ObjectType.AddObj(i, 1)), 1));
}
private static object sl(object x, object n)
{
if ((ObjectType.ObjTst(n, 0, false) == 0)) {
return RuntimeHelpers.GetObjectValue(x);
}
object obj5 = LongType.FromObject(ObjectType.PowObj(2, ObjectType.SubObj(ObjectType.SubObj(32, n), 1)));
object obj3 = ObjectType.MulObj(ObjectType.BitAndObj(x, ObjectType.SubObj(obj5, 1)), LongType.FromObject(ObjectType.PowObj(2, n)));
if (BooleanType.FromObject(ObjectType.BitAndObj(x, obj5))) {
obj3 = ObjectType.BitOrObj(obj3, -2147483648l);
}
return RuntimeHelpers.GetObjectValue(obj3);
}
private static object mix(object ia, object ib, object ic)
{
object v_obj = ia;
object v_obj1 = ib;
object v_obj2 = ic;
v_obj = usub(v_obj, v_obj1);
v_obj = usub(v_obj, v_obj2);
v_obj = ObjectType.BitXorObj(v_obj, zeroFill(v_obj2, 13));
v_obj1 = usub(v_obj1, v_obj2);
v_obj1 = usub(v_obj1, v_obj);
v_obj1 = ObjectType.BitXorObj(v_obj1, sl(v_obj, 8));
v_obj2 = usub(v_obj2, v_obj);
v_obj2 = usub(v_obj2, v_obj1);
v_obj2 = ObjectType.BitXorObj(v_obj2, zeroFill(v_obj1, 13));
v_obj = usub(v_obj, v_obj1);
v_obj = usub(v_obj, v_obj2);
v_obj = ObjectType.BitXorObj(v_obj, zeroFill(v_obj2, 12));
v_obj1 = usub(v_obj1, v_obj2);
v_obj1 = usub(v_obj1, v_obj);
v_obj1 = ObjectType.BitXorObj(v_obj1, sl(v_obj, 16));
v_obj2 = usub(v_obj2, v_obj);
v_obj2 = usub(v_obj2, v_obj1);
v_obj2 = ObjectType.BitXorObj(v_obj2, zeroFill(v_obj1, 5));
v_obj = usub(v_obj, v_obj1);
v_obj = usub(v_obj, v_obj2);
v_obj = ObjectType.BitXorObj(v_obj, zeroFill(v_obj2, 3));
v_obj1 = usub(v_obj1, v_obj2);
v_obj1 = usub(v_obj1, v_obj);
v_obj1 = ObjectType.BitXorObj(v_obj1, sl(v_obj, 10));
v_obj2 = usub(v_obj2, v_obj);
v_obj2 = usub(v_obj2, v_obj1);
v_obj2 = ObjectType.BitXorObj(v_obj2, zeroFill(v_obj1, 15));
return new object[] {v_obj, v_obj1, v_obj2, null};

}
private static object ReinterpretSignedAsUnsigned(object x)
{
if ((ObjectType.ObjTst(x, 0, false) < 0)) {
x = ObjectType.AddObj(x, 4294967296l);
}
return RuntimeHelpers.GetObjectValue(x);
}
private static object usub(object L1, object L2)
{
object obj2 = ObjectType.BitAndObj(L1, 16777215);
object obj3 = ObjectType.IDivObj(ObjectType.BitAndObj(L1, 2130706432), 16777216);
if ((ObjectType.ObjTst(L1, 0, false) < 0)) {
obj3 = ObjectType.BitOrObj(obj3, 128);
}
object obj4 = ObjectType.BitAndObj(L2, 16777215);
object obj5 = ObjectType.IDivObj(ObjectType.BitAndObj(L2, 2130706432), 16777216);
if ((ObjectType.ObjTst(L2, 0, false) < 0)) {
obj5 = ObjectType.BitOrObj(obj5, 128);
}
object obj7 = ObjectType.SubObj(obj3, obj5);
object obj6 = ObjectType.SubObj(obj2, obj4);
if ((ObjectType.ObjTst(obj6, 0, false) < 0)) {
obj7 = ObjectType.SubObj(obj7, 1);
obj6 = ObjectType.AddObj(obj6, 16777216);
}
object obj8 = ObjectType.AddObj(obj6, ObjectType.MulObj(ObjectType.BitAndObj(obj7, 127), 16777216));
if (BooleanType.FromObject(ObjectType.BitAndObj(obj7, 128))) {
obj8 = ObjectType.BitOrObj(obj8, -2147483648l);
}
return obj8;
}
private static object zeroFill(object a, object b)
{
object objectValue;
if (BooleanType.FromObject(ObjectType.BitAndObj(-2147483648l, a))) {
objectValue = sr(ObjectType.BitOrObj(ObjectType.BitAndObj(sr(a, 1), 2147483647), 1073741824), ObjectType.SubObj(b, 1));
}
else {
objectValue = sr(a, RuntimeHelpers.GetObjectValue(b));
}
return objectValue;
}
private static object sr(object x, object n)
{
object obj4;
if ((ObjectType.ObjTst(n, 0, false) == 0)) {
return RuntimeHelpers.GetObjectValue(x);
}
object obj3 = ObjectType.BitAndObj(x, 2147483647);
if ((ObjectType.ObjTst(n, 31, false) == 0)) {
obj4 = 0;
}
else {
obj4 = ObjectType.IDivObj(obj3, LongType.FromObject(ObjectType.PowObj(2, n)));
}
if ((ObjectType.ObjTst(obj3, x, false) != 0)) {
obj4 = ObjectType.BitOrObj(obj4, LongType.FromObject(ObjectType.PowObj(2, ObjectType.SubObj(ObjectType.SubObj(32, n), 1))));
}
return RuntimeHelpers.GetObjectValue(obj4);
}
}

پیروز و نیک باشید

abadanboy
دوشنبه 10 دی 1386, 14:03 عصر
خیلی وقته که دنبال چنین چیزی میگشتم ولی متاسفانه نمونه شو تو هیچ سایت فارسی پیدا نکردم و انگلیسی ها هم یا کامپوننت بود یا php ولی بلاخره درش اوردم.

فقط اگه راجب نحوه عملکردش بتونی توضیح بدی خیلی خوب می شه

raravaice
دوشنبه 10 دی 1386, 14:16 عصر
سلام

منظورتون رو از عملکرد نمی فهمم عملکرد چیش؟

یک url به عنوان ورودی بهش میدی و یه string که حاوی مقدار rank صفحه است تحویل میگیری.

این کار مستقیم از روی سایت گوگل انجام میشه منتها نه به این راحتی .
ظاهرا گوگل الگوریتمی داره که به هر url توسط این الکوریتم یه عدد داده میشه با مقادیر long و شما این عدد رو (تو برنامه دقت کنی پارامتر ch از کوری ارسالی به گوگل) به همراه url صفحه مورد نظر به گوگل میفرستی و پاسخ گوگل تا 3 مرحله pagerank برای شما میاد به این صورت.
rank_1:1:1 که عدد آخر شامل pagerank فعلی شماست و 2 عدد دیگه رو فکر کنم برای آینده زاپاس نگه داشته و اگر یه صفحه عدد 10 رو رد کنه عدد دوم میره بالا که فعلا کاربردی ندارد پون فقط خود گوگل هست که فعلا ran_1:2:10 رو داره.

حالا این عدد چطور تولید میشه بحث طولانی و مفصری داره ولی مختصرش اینه که یک ثابت داریم (رجوع شود به متغییر GOOGLE_MAGIC ) هر کدام از کاراکتر های url ارسالی شما به کد اسکی بر میگرده و بعد با این عدد AND یا OR میشه و در بعضی مواقع به مقادیر مشخصی LEFT SHIFT یا RIGHT SHIFT میشه (منظورم بیتهای عدد هست) که تمام این کارا توی توابع uadd ، mix ، sl ، sr و در پایان GOOGLECH محاسبه میشه.

hesam_a110
دوشنبه 10 دی 1386, 14:51 عصر
درود
اینم برای راحتر تر شدن دوستان عزیز
یه نکته که بعدا تست کردم اینکه کد C# یه کوچولو ایراد داره ولی از این dll می تونید استفاده کنید


using pagerank;

pagerank.pagerank a = new pagerank.pagerank(TextBox1.Text);

Response.Write(a.PageRank);

my_blithe
یک شنبه 28 بهمن 1386, 11:52 صبح
میشه در مورد pageRank توضیح بدید که اصلا چی هست ؟؟؟؟

ببخشید ها

raravaice
یک شنبه 28 بهمن 1386, 15:12 عصر
میشه در مورد pageRank توضیح بدید که اصلا چی هست ؟؟؟؟

http://www.aftab.ir/articles/computer_internet_infortmation_technology/internet_network/c14c1161417787_pagerank_p1.php

my_blithe
یک شنبه 28 بهمن 1386, 23:26 عصر
ببخشید لینک تون کار نمیکنه....

raravaice
دوشنبه 29 بهمن 1386, 11:29 صبح
یج رنک روش گوگل برای اندازه‌گیری "اهمیت" صفحات است. زمانیکه تمام فاکتورهای دیگر نظیر درصد تکرار کلمات در عنوان صفحه، درصد تعداد تکرار کلمات در متن صفحه، ارزش مکانی کلمات و ... محاسبه شدند، گوگل از‍ پیج رنک برای تنظیم نتایج جستجو، استفاده می‌کند و لذا سایتهایی که مهمتر هستند به رده‌های بالاتر می‌آیند.


دربارش جستجو کن.

موفق باشید

chaalesh
پنج شنبه 02 خرداد 1387, 23:13 عصر
آقا حسام
کجای کد مورد داشت اولا ؟
دوما اگه تغییرش دادید لطف میکنید کد جدید رو هم بزارید

gheysar14
دوشنبه 03 تیر 1387, 11:15 صبح
درود
اینم برای راحتر تر شدن دوستان عزیز
یه نکته که بعدا تست کردم اینکه کد C# یه کوچولو ایراد داره ولی از این dll می تونید استفاده کنید


using pagerank;

pagerank.pagerank a = new pagerank.pagerank(TextBox1.Text);

Response.Write(a.PageRank);


میشه بگین چه جوری فایل dll اونو ساختین؟ من که از VB.NET استفاده میکنم اشکالی نداره از فایل dll شما استفاده کنم ( فکر می کنم با C# باشه)

raravaice
دوشنبه 03 تیر 1387, 11:32 صبح
میشه بگین چه جوری فایل dll اونو ساختین؟ من که از VB.NET استفاده میکنم اشکالی نداره از فایل dll شما استفاده کنم ( فکر می کنم با C# باشه)

فرقی نداره. برنامه وقتی کامپایل میشه به dll دیگه مهم نیست با vb باشه یا #c منم هدفم از گذاشتن سورس بررسی نوع کار و آشنایی بیشتر با این الگوریتم توسط دوستان بود که متاسفانه فید بک خوبی نداشت.

موفق باشید

محمدامین شریفی
سه شنبه 28 آبان 1387, 13:16 عصر
میشه بگین چه جوری فایل dll اونو ساختین؟ من که از VB.NET استفاده میکنم اشکالی نداره از فایل dll شما استفاده کنم ( فکر می کنم با C# باشه)فرقی نداره. برنامه وقتی کامپایل میشه به dll دیگه مهم نیست با vb باشه یا #c منم هدفم از گذاشتن سورس بررسی نوع کار و آشنایی بیشتر با این الگوریتم توسط دوستان بود که متاسفانه فید بک خوبی نداشت.

موفق باشید
استاد اتفاقا بازخورد خوبی داشت.من الان سرم شلوغ هست.دوست دارم بعدا شما کمکم کنید.
در ضمن تو کد #c چرا از namespace های VB استفاده شده بود(بهم برخورد،البته بعدا درست میشه)اینم پروژه asp.net که دوست خوبم حسام جون کدش رو نوشته بودند.که البته با تغییرات مختصری چون:الف)اضافه کردن namespace به درون پروژه،چون اگر از نام دامنه های VB بخواهیم تو #C استفاده کنیم باید آنرا اضافه کنیم.ب)هنگام اجرا 2 خطای can not implicitly convert میداد که اینگونه درست شد:


public string PageRank {
get { return C_PageRank.ToString(); }
}

و


private void PR(string webSiteUrl)
{
WebClient read = new WebClient();
string result;
UTF8Encoding enc = new UTF8Encoding();
try {
string reader = enc.GetString(read.DownloadData(GetRankUrl(webSite Url)));
if (reader != "") {
result = reader.Substring(reader.Length - 3, 2);
result = result.Replace(":", "");
}
else {
result = "0";
}
}
catch (Exception ex) {
result = "0";
}
C_PageRank = Convert.ToByte(result);
}

25602

RoostaYeBekr
جمعه 13 دی 1387, 14:29 عصر
میشه در مورد pageRank توضیح بدید که اصلا چی هست ؟؟؟؟

ببخشید ها
پنجاه سال بعد :

اینهایی که می گم ، شنیدم . از raravaice هم ممنون می شم اگه تاییدش کنه.

وقت تو گوگل سرچ می کنیم ، یک سری نتیجه ها ، صفحه اول می یاد ، یک سری هم ، صفحات بعد. حالا اونهایی که اول میان دو دسته اند:

1 - یکی اون هایی که به خود گوگل پول می دهند تا سایتشان در عملیات سرچ ، جزء نتایج اول باشد.

2 - آنهایی که pagerank بالائی دارند . به این معنی که اگر تعداد مراجعه به سایتی ، زیاد باشد ، pagerank اش هم بالا می رود. ( منظورم از تعداد مراجعه زیاد به سایت ، مثل پنج نفر در هر روز است . البته شاید کمی ، کم گفته باشم )

شاید بگوئید که بعضی سایت ها ، اصلا برنامه اش را هم از روی Server ، مدت زیادی است که برداشته اند ، اما باز هم جزء نتایج گوگل می آید. من به شخص فکر می کنم که این به خاطر صفحات ذخیره شده از آن سایت می باشد.

persianspam
دوشنبه 18 آبان 1388, 17:34 عصر
درود
اینم برای راحتر تر شدن دوستان عزیز
یه نکته که بعدا تست کردم اینکه کد C#‎ یه کوچولو ایراد داره ولی از این dll می تونید استفاده کنید


using pagerank;

pagerank.pagerank a = new pagerank.pagerank(TextBox1.Text);

Response.Write(a.PageRank);


عالی بود . ممنون . اینم یه سمپل با Asp.net & C#.net که توش از همین DLL استفاده شده.
فقط میشه بگین که این DLL از سرویس کدوم سایت استفاده میکنه ؟ آیا امکان این که این DLL از کار بیوفته هست یا خیر ؟

hamed2592
سه شنبه 15 فروردین 1391, 00:49 صبح
Dim read As WebClient = New WebClient
Dim result As String
Dim enc As UTF8Encoding = New UTF8Encoding
Try
Dim reader As String = enc.GetString(read.DownloadData(GetRankUrl(webSite Url)))
If reader <> "" Then
result = reader.Substring(reader.Length - 3, 2)
result = result.Replace(":", "")
Else : result = "0"
End If
Catch ex As Exception
result = "0"
End Try
C_PageRank = result
End Sub





سلام

کدتون خطا میده توی مرحله ی آخر که میخواد C_PageRank = result قرار بده و اگه C_PageRank رو String تعریف کنیم مقدار ml رو برمیگردونه !!!

میشه بگین مقداری که این کد برمیگردونه چیه !!؟!؟!؟

در واقع از آدرس صفحه ی گوگل قراره چه چیزی واکشی یا برگشت داده بشه !؟