يأتي نظام الاستعلام عن تصنيف الصفحات من Google (عدم سرقة بيانات مواقع الويب التابعة لجهات خارجية) مع ثلاث صفحات أمثلة لهذا البرنامج، وفئة الاكتساب عن بعد جيدة جدًا،
وهي عرض توضيحي لصفحة الاستعلام عن الصفحات من Google: http://www.knowsky.com/tools/ . الصفحات/
الصفحات:
CLS_Asphttp.asp
<%
فئة FlyCms_AspHttp
oForm العام، oXml، Ados
رؤوس الشوارع العامة
الطريقة العامة
عنوان URL العام
المرجع العام
ملف تعريف الارتباط sSetCookie العام
اللغة العامة
المحتوى العام
وكيل عام
الترميز العام
قبول عام
البيانات العامة
قاعدة كود بيس العامة
خاص slresolveTimeout,slconnectTimeout,slsendTimeout,slreceiveTimeout
'==========================================================================================
'تهيئة وحدة الفصل
'==========================================================================================
فئة فرعية خاصة_Initialize()
استمارة = ""
تعيين oXml = Server.CreateObject("MSXML2.ServerXMLHTTP")
تعيين Ados = Server.CreateObject("Adodb.Stream")
slresolveTimeout = 20000 'مهلة حل أسماء DNS، 20 ثانية
slconnectTimeout = 20000 ' المهلة اللازمة لإنشاء اتصال Winsock، 20 ثانية
slsendTimeout = 30000 ' مهلة إرسال البيانات، 30 ثانية
slreceiveTimeout = 30000 ' مهلة تلقي الاستجابة، 30 ثانية
النهاية الفرعية
========================================================================
"مهلة لحل أسماء DNS."
'==========================================================================================
الملكية العامة دعونا نحل Timeout(LngSize)
إذا كان IsNumeric(LngSize) إذن
slresolveTimeout = Clng(LngSize)
نهاية إذا
نهاية الملكية
'==========================================================================================
'مهلة إنشاء اتصال Winsock
'==========================================================================================
الملكية العامة دع lconnectTimeout(LngSize)
إذا كان IsNumeric(LngSize) إذن
slconnectTimeout = Clng(LngSize)
نهاية إذا
نهاية الملكية
'==========================================================================================
'مهلة لإرسال البيانات
'==========================================================================================
الملكية العامة دع lsendTimeout(LngSize)
إذا كان IsNumeric(LngSize) إذن
slsendTimeout = Clng(LngSize)
نهاية إذا
نهاية الملكية
'==========================================================================================
"مهلة لتلقي الرد
'==========================================================================================
الملكية العامة دع lreceiveTimeout(LngSize)
إذا كان IsNumeric(LngSize) إذن
slreceiveTimeout = Clng(LngSize)
نهاية إذا
نهاية الملكية
'==========================================================================================
'طريقة
'==========================================================================================
طريقة السماح للملكية العامة (strMethod)
sMethod = strMethod
نهاية الملكية
'==========================================================================================
"أرسل عنوان URL."
'==========================================================================================
عنوان URL للملكية العامة (strUrl)
sUrl = strUrl
نهاية الملكية
'==========================================================================================
'بيانات
'==========================================================================================
بيانات السماح للملكية العامة (strData)
sData = strData
نهاية الملكية
'==========================================================================================
"المرجع."
'==========================================================================================
الملكية العامة دع المُحيل (strReferer)
sReferer = strReferer
نهاية الملكية
'==========================================================================================
'SetCookie
'==========================================================================================
الملكية العامة دع SetCookie(strCookie)
sSetCookie = strCookie
نهاية الملكية
'==========================================================================================
'لغة
'==========================================================================================
الملكية العامة دع اللغة (strLanguage)
sLanguage = strLanguage
نهاية الملكية
'==========================================================================================
"نوع المحتوى".
'==========================================================================================
محتوى السماح للملكية العامة (strCONTENT)
sCONTENT = strCONTENT
نهاية الملكية
'==========================================================================================
"وكيل المستخدم".
'==========================================================================================
وكيل تأجير الممتلكات العامة (strAgent)
sAgent = strAgent
نهاية الملكية
'==========================================================================================
'"قبول-ترميز"."
'==========================================================================================
ترميز الملكية العامة (strEncoding)
sEncoding = strEncoding
نهاية الملكية
'==========================================================================================
'يقبل
'==========================================================================================
السماح للملكية العامة بالقبول (strAccept)
sAccept = strAccept
نهاية الملكية
'==========================================================================================
"كود بيس."
'==========================================================================================
الملكية العامة تسمح لـ CodeBase(strCodeBase)
sCodeBase = strCodeBase
نهاية الملكية
'==========================================================================================
"إنشاء اتجاه نقل البيانات!"
'==========================================================================================
الوظيفة العامة AddItem (المفتاح، القيمة)
على خطأ استئناف التالي
خافت TempStr
إذا oForm = "" ثم
oForm = Key + "=" + Server.URLEncode(Value)
آخر
oForm = oForm + "&" + Key + "=" + Server.URLEncode(Value)
نهاية إذا
وظيفة النهاية
'==========================================================================================
'إرسال البيانات واسترداد البيانات عن بعد
'==========================================================================================
الوظيفة العامة HttpGet()
عودة خافتة
مع أوكسمل
.setTimeouts slresolveTimeout،slconnectTimeout،slsendTimeout،slreceiveTimeout
.فتح sMethod،sUrl،False
إذا كان sSetCookie<>"" إذن
.setRequestHeader "Cookie"، sSetCookie 'Set Cookie
نهاية إذا
إذا كان sReferer<>"" إذن
.setRequestHeader "Referer"، sReferer 'تعيين مصدر الصفحة
آخر
.setRequestHeader "المُحيل"، sUrl
نهاية إذا
إذا كانت اللغة <>"" إذن
.setRequestHeader "قبول اللغة"، sLanguage 'تعيين اللغة
نهاية إذا
.setRequestHeader "طول المحتوى"،Len(sData) 'تعيين طول البيانات
إذا كان المحتوى<>"" إذن
.setRequestHeader "CONTENT-Type"،sCONTENT 'قم بتعيين نوع البيانات المقبول
نهاية إذا
إذا كان sAgent<>"" إذن
.setRequestHeader "User-Agent"، sAgent 'Set browser
نهاية إذا
إذا كان الترميز<>"" إذن
.setRequestHeader "قبول الترميز"، sEncoding 'ضبط ضغط gzip
نهاية إذا
إذا sAccept<>"" ثم
.setRequestHeader "قبول"، sAccept "نوع المستند".
نهاية إذا
الاستجابة.اكتب sData
.إرسال sData 'إرسال البيانات
بينما .readyState <> 4
انتظر الرد 1000
ويند
strHeaders = .getAllResponseHeaders()
إذا كان sCodeBase<>"" إذن
sReturn = bytes2BSTR(.responseBody)
آخر
sReturn = .responseBody
نهاية إذا
نهاية مع
HttpGet = sReturn
وظيفة النهاية
'==========================================================================================
' معالجة البيانات الثنائية
'==========================================================================================
بايتات الوظيفة الخاصة 2BSTR(vIn)
strReturn = ""
لأني = 1 إلى LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
إذا كان ThisCharCode < &H80 إذن
strReturn = strReturn & Chr(ThisCharCode)
آخر
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
ط = ط + 1
نهاية إذا
التالي
bytes2BSTR = strReturn
وظيفة النهاية
'==========================================================================================
'تسجيل الخروج من الوحدة النمطية للفئة
'==========================================================================================
فئة فرعية خاصة_إنهاء
استمارة = ""
تعيين oXml = لا شيء
تعيين Ados = لا شيء
نهاية الفرعية
نهاية الفصل
%>
جوجل.asp
<%
Const GOOGLE_MAGIC = &HE6359A60
الدالة sl(ByVal x, ByVal n)
إذا ن = 0 ثم
س = س
آخر
خافت ك
ك = CLng(2 ^ (32 - ن - 1))
خافت د
د = س و (ك - 1)
خافت ج
ج = د * CLng(2^n)
إذا x و k ثم
ج = ج أو &H80000000
نهاية إذا
م = ج
نهاية إذا
وظيفة النهاية
uadd وظيفة خاصة (ByVal L1، ByVal L2)
خافت L11، L12، L21، L22، L31، L32
L11 = L1 و&HFFFFFF
L12 = (L1 و&H7F000000) &H1000000
إذا كان L1 <0 فإن L12 = L12 أو &H80
L21 = L2 و&HFFFFFF
L22 = (L2 و&H7F000000) &H1000000
إذا كان L2 <0 فإن L22 = L22 أو &H80
L32 = L12 + L22
L31 = L11 + L21
إذا كان (L31 و&H1000000) فإن L32 = L32 + 1
uadd = (L31 و&HFFFFFF) + (L32 و&H7F) * &H1000000
إذا كان L32 و&H80 فإن uadd = uadd أو &H80000000
الوظيفة النهائية
(ByVal ia، ByVal ib، ByVal ic)
خافت أ، ب، ج
أ = أنا
ب=يب
ج = جيم
أ = أوسوب (أ، ب)
أ = أوسوب (أ، ج)
أ = أ Xor ZeroFill(c, 13)
ب = usub(b, c)
ب = أوسوب (ب، أ)
ب = ب Xor sl(a, 8)
b = usub(b, c)
ب = أوسوب (ب، أ)
ب = ب Xor sl(a, 10)
c = usub(c, a)
ج = أوسوب (ج، ب)
ج = ج X أو صفر فيل (ب، 15)
ديم ريت (3)
ريت (0) = أ
استعاد (1) = ب
ret (2) =
مزيج ج = ret
النهاية
gc (ByVal s، ByVal i)
gc = تصاعدي (منتصف (s، i + 1، 1))
وظيفة النهاية
وظيفة GoogleCH(ByVal sUrl)
طول خافت، أ، ب، ج، ك، إيلين، م
iLength = Len(sUrl)
a = &H9E3779B9
ب = &H9E3779B9
ج = GOOGLE_MAGIC
ك = 0
إيلين = طول
افعل بينما iLen >= 12
a = uadd(a, (uadd(gc(sUrl, k + 0), uadd(sl(gc(sUrl, k + 1), 8), uadd(sl(gc(sUrl, k + 2), 16), sl(gc(sUrl, k + 3), 24))))))
ب = uadd(b, (uadd(gc(sUrl, k + 4), uadd(sl(gc(sUrl, k + 5), 8), uadd(sl(gc(sUrl, k + 6), 16), sl(gc(sUrl, k + 7), 24)))))
m = mix(a, b, c)
a = m(0)
ب = م(1)
ج = م (2)
ك = ك + 12
إيلين = إيلين - 12
Loop
c = uadd(c, iLength)
حدد Case iLen ' جميع عبارات الحالة تسقط
الحالة 11
ج = uadd(c, sl(gc(sUrl, k + 10), 24))
ج = uadd(c, sl(gc(sUrl, k + 9), 16))
ج = uadd(c, sl(gc(sUrl, k + 8), 8))
ب = uadd(b, sl(gc(sUrl, k + 7), 24))
ب = uadd(b, sl(gc(sUrl, k + 6), 16))
ب = uadd(b, sl(gc(sUrl, k + 5), 8))
الحالة 10
ج = uadd(c, sl(gc(sUrl, k + 9), 16))
ج = uadd(c, sl(gc(sUrl, k + 8), 8))
ب = uadd(b, sl(gc(sUrl, k + 7), 24))
ب = uadd(b, sl(gc(sUrl, k + 6), 16))
ب = uadd(b, sl(gc(sUrl, k + 5), 8))
ب = uadd(ب، gc(sUrl، ك + 4))
الحالة 9
ج = uadd(c, sl(gc(sUrl, k + 8), 8))
ب = uadd(b, sl(gc(sUrl, k + 7), 24))
ب = uadd(b, sl(gc(sUrl, k + 6), 16))
ب = uadd(b, sl(gc(sUrl, k + 5), 8))
ب = uadd(ب، gc(sUrl، ك + 4))
ا = uadd(a, sl(gc(sUrl, k + 3), 24))
ا = uadd(أ، sl(gc(sUrl، k + 2)، 16))
ا = uadd(a, sl(gc(sUrl, k + 1), 8))
أ = uadd(أ، gc(sUrl، ك + 0))
الحالة 8
ب = uadd(b, sl(gc(sUrl, k + 7), 24))
ب = uadd(b, sl(gc(sUrl, k + 6), 16))
ب = uadd(b, sl(gc(sUrl, k + 5), 8))
ب = uadd(ب، gc(sUrl، ك + 4))
ا = uadd(a, sl(gc(sUrl, k + 3), 24))
ا = uadd(أ، sl(gc(sUrl، k + 2)، 16))
ا = uadd(a, sl(gc(sUrl, k + 1), 8))
أ = uadd(أ، gc(sUrl، ك + 0))
الحالة 7
ب = uadd(b, sl(gc(sUrl, k + 6), 16))
ب = uadd(b, sl(gc(sUrl, k + 5), 8))
ب = uadd(ب، gc(sUrl، ك + 4))
ا = uadd(a, sl(gc(sUrl, k + 3), 24))
ا = uadd(أ، sl(gc(sUrl، k + 2)، 16))
ا = uadd(a, sl(gc(sUrl, k + 1), 8))
أ = uadd(أ، gc(sUrl، ك + 0))
الحالة 6
ب = uadd(b, sl(gc(sUrl, k + 5), 8))
ب = uadd(ب، gc(sUrl، ك + 4))
ا = uadd(a, sl(gc(sUrl, k + 3), 24))
ا = uadd(أ، sl(gc(sUrl، k + 2)، 16))
ا = uadd(a, sl(gc(sUrl, k + 1), 8))
أ = uadd(أ، gc(sUrl، ك + 0))
الحالة 5
ب = uadd(ب، gc(sUrl، ك + 4))
ا = uadd(a, sl(gc(sUrl, k + 3), 24))
ا = uadd(أ، sl(gc(sUrl، k + 2)، 16))
ا = uadd(a, sl(gc(sUrl, k + 1), 8))
أ = uadd(أ، gc(sUrl، ك + 0))
الحالة 4
ا = uadd(a, sl(gc(sUrl, k + 3), 24))
ا = uadd(أ، sl(gc(sUrl، k + 2)، 16))
ا = uadd(a, sl(gc(sUrl, k + 1), 8))
أ = uadd(أ، gc(sUrl، ك + 0))
الحالة 3
ا = uadd(أ، sl(gc(sUrl، k + 2)، 16))
ا = uadd(a, sl(gc(sUrl, k + 1), 8))
أ = uadd(أ، gc(sUrl، ك + 0))
الحالة 2
أ = uadd(a, sl(gc(sUrl, k + 1), 8))
أ = uadd(أ، gc(sUrl، ك + 0))
الحالة 1
أ = uadd(أ، gc(sUrl، ك + 0))
نهاية حدد
م = مزيج (أ، ب، ج)
GoogleCH = م (2)
نهاية الوظيفة
حساب المجموع الاختباري (sUrl)
CalculateChecksum = "6" & CStr(GoogleCH("info:" & sUrl))
وظيفة النهاية
%>
PR.asp
<!--#include file="google.asp"-->
<!--#include file="Cls_AspHttp.asp"-->
<%
رو الفرعية (شارع)
الاستجابة.اكتب Str & vbCrLf
الاستجابة. فلوش
الفرعية النهائية
HttpGet(lresolveTimeout,lconnectTimeout,Method,Url,Referer,Data,SetCookie,Language,CONTENT,Agent,Encoding,Accept,CodeBase)
Set DoGet = New FlyCms_AspHttp
DoGet.lresolveTimeout = lresolveTimeout
DoGet.lconnectTimeout = lconnectTimeout
DoGet.lsendTimeout = lsendTimeout
DoGet.lreceiveTimeout = lreceiveTimeout
DoGet.Method = الطريقة
DoGet.Url = URL
DoGet.Referer = المُحيل
DoGet.Data = البيانات
DoGet.SetCookie = SetCookie
DoGet.Language = اللغة
DoGet.CONTENT = المحتوى
DoGet.Agent = Agent
DoGet.Encoding = التشفير
DoGet.Accept = قبول
DoGet.CodeBase = CodeBase
HttpGet = DoGet.HttpGet()
تعيين DoGet = لا شيء
النهاية
GGPR (عنوان URL ByVal)
شارع خافت
sURL = " http://www.google.com/search?client=navclient&ch =" & CalculateCheck(URL) & "&features=Rank&q=info:" & URL
Rw "عنوان الاستعلام:" & sURL & "<br />"
strRet = HttpGet(10000,10000,20000,20000،"GET"،sUrl،""،"،"،"،، zh-cn"، ""، Mozilla/4.0 (متوافق؛ MSIE 6.0؛ Windows NT 5.1) ""،"،"*/*"،"gb2312")
إذا كان InStr(strRet,":):" ثم
R = سبليت (strRet، "):")
جبر = ص(2)
آخر
الناتج المحلي الإجمالي = 0
نهاية إذا
Rw "إرجاع النتيجة:" & strRet & "<br />"
Rw " قيمة العلاقات العامة: " & GGPR & "<br />"
وظيفة النهاية
iURL = طلب("iURL")
إذا كان iURL = "" فإن iURL = " http://www.downcodes.com "
اتصلGGPR(iURL)
%>
<أتش تي أم أل>
<الرأس></الرأس>
<title>استعلام Google Pagerank (سارق استعلام العلاقات العامة)</title>
<الجسم>
<h1>أدخل عنوان الصفحة بالكامل للتحقق من تصنيف الصفحات (قيمة العلاقات العامة للصفحة):</h1>
<إجراء النموذج = "" طريقة = "نشر">
عنوان URL <input type = "text" name = "iURL" style = "width:200px" /><input type = "submit" value = "pr query" />
</النموذج>
</الجسم>
<أتش تي أم أل>