raravaice
دوشنبه 10 دی 1386, 03: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 برگردوندمش دوستان اگر میتونن کوتاه ترش کنن زحمتش با شما ، بزارین اینجا ما هم استفاده کنیم.
موفق باشید
خیلی وقته که دنبال چنین چیزی میگشتم ولی متاسفانه نمونه شو تو هیچ سایت فارسی پیدا نکردم و انگلیسی ها هم یا کامپوننت بود یا 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 برگردوندمش دوستان اگر میتونن کوتاه ترش کنن زحمتش با شما ، بزارین اینجا ما هم استفاده کنیم.
موفق باشید