Многие друзья не понимают программу вора? Вы знаете, что такое программа вора? Сегодня давайте взглянем на то, как ASP Alexa может реализовать программу WERY THIEF с редактором Foxin. На самом деле, эта проблема не так сложна, как мы себе представляли.
<%
«Чтобы поддержать оригинальность, пожалуйста, сохраните комментарии здесь, спасибо!
Автор: Cao Shangfei
'Получите основное доменное имя
Функция getDomainurl (url)
tempurl = reply (url, "http: //", "")
Если instr (tempurl, "/")> 0 тогда
Tempurl = Left (Tempurl, Instr (Tempurl, "/")-1)
конец, если
GetDomainurl = Tempurl
Конечная функция
Функция gethttppage (httpurl)
Если isnull (httpurl) = true или len (httpurl) <18 или httpurl = "$ false $"
Gethttppage = "$ false $"
Выходная функция
Конец, если
Dim http
Установить http = server.createObject ("msxml2.xmlhttp")
Http.open "Get", httpurl, false
Http.send ()
Если http.readystate <> 4 то
Установите http = ничего
Gethttppage = "$ false $"
Выходная функция
Конец, если
Gethttppage = http.responsetext
Установите http = ничего
Если err.number <> 0, тогда
Err.clear
Конец, если
Конечная функция
'==========================================================================
'Имя функции: scripthtml
'Function: фильтр HTML -теги
'Аргументы: создать ------------------------------------------------------------------------------------------------------------------------
'Tagname ------- теги для фильтрации
'Ftype 1 означает фильтрацию левой метки 2 означает фильтрацию левой метки, а среднее значение 3 означает фильтрацию левой метки и правую метку, сохраняя содержимое.
'==========================================================================
Функция Scripthtml (Byval Construe, Tagname, Ftype, Includeest)
Dim Re
Установите RE = новая режима
Re.ignorecase = true
Re.global = true
Выберите Case ftype
Случай 1
Re.pattern = "<" & Tagname & "([^>])*(" & includest & ") {1,} ([^>])*>"
Constra = re.replace (constr, "")
Случай 2
Re.pattern = "<" & Tagname & "([^>])*(" & includest & ") {1,} ([^>])*>.*? </" & Tagname & "([^>])*>"
'response.write constr & "<br>"
Constra = re.replace (constr, "")
'response.write server.htmlencode (constry) & "<br>"
Случай 3
Re.pattern = "<" & Tagname & "([^>])*(" & includest & ") {1,} ([^>])*>"
Constra = re.replace (constr, "")
Re.pattern = "</" & Tagname & "([^>])*>"
Constra = re.replace (constr, "")
Конец выбора
Scripthtml = constr
Установить re = ничего
Конечная функция
'==========================================================================
'Имя функции: getbody
'Эффект: перехватить строку
'Аргумент: создайте ------- строка для перехвата
'Аргументы: Startstr ------ Start String
'Аргументы: Overstr ------- конечная строка
'Статья: inclul ------- Будь то StartStr
'Статья: Inclur --------- включить Overstr
'==========================================================================
Функция Get Fody (Constry, Startstr, Overstr, Inclul, Inclur)
Если constra = "$ false $" или contr = "" или isnull (constry) = true или startstr = "" или isnull (startstr) = true или Overstr = "" или isnull (Overstr) = true then
Getbody = "$ false $"
Выходная функция
Конец, если
Dim Constrtemp
Dim Start, Over
Constrtemp = lcase (constry)
Startstr = lcase (startstr)
Overstr = lcase (Overstr)
Start = instrb (1, constrtemp, startstr, vbbinarycompare)
'response.write Start & "<br>" & inclul & "<br>"
'response.end
Если запустить <= 0, тогда
Getbody = "$ false $"
Выходная функция
Еще
Если inclul = false then
Start = start+lenb (startstr)
Конец, если
Конец, если
Over = Instrb (Start, Constrtemp, Overstr, VbbinaryCompare)
'response.write Over
'response.end
'response.write start & "" & over & "" & Over-Start
'response.end
Если более чем <= 0 или более <= начать, тогда
Getbody = "$ false $"
Выходная функция
Еще
Если inculur = true Then
Over = over+lenb (Overstr)
Конец, если
Конец, если
Getbody = midb (создайте, запустите, переживает)
'response.write Get Fody
'response.end
Конечная функция
'==========================================================================
'Имя функции: getarray
Метод: извлечь адрес ссылки, разделенный $ Array $
'Аргумент: создайте ------- Извлеките исходный символ адреса
'Аргументы: Startstr ------ Start String
'Аргументы: Overstr ------- конечная строка
'Статья: inclul ------- Будь то StartStr
'Статья: Inclur --------- включить Overstr
'==========================================================================
Функция Getarray (Byval Constr, Startstr, Overstr, Inclul, Inclur)
Если contr = "$ false $" или contr = "" или isnull (constry) = true или startstr = "" или Overstr = "" или isnull (startStstr) = true или isnull (Overstr) = true then
Getarray = "$ false $"
Выходная функция
Конец, если
Dim Tempstr, Tempstr2, Objregexp, Matches, Match
Tempstr = ""
Установить objregexp = new Regexp
objregexp.ignorecase = true
objregexp.global = true
objregexp.pattern = "(" & startstr & ").+? (" & Overstr & ")"
Установить Matches = objregexp.execute (constry)
Для каждого матча в матчах
Tempstr = tempstr & "$ array $" & match.value
Следующий
Установить совпадения = ничего
Если tempstr = "" then
Getarray = "$ false $"
Выходная функция
Конец, если
Tempstr = справа (Tempstr, Len (Tempstr) -7)
Если inclul = false then
objregexp.pattern = startstr
Tempstr = objregexp.replace (tempstr, "")
Конец, если
Если inculur = false then
objregexp.pattern = Overstr
Tempstr = objregexp.replace (tempstr, "")
Конец, если
Установить objregexp = ничего
Установить совпадения = ничего
Если tempstr = "" then
Getarray = "$ false $"
Еще
Getarray = tempstr
Конец, если
Конечная функция
Функция getalexarank (webuurl)
tempurl = getDomainurl (wewebrl)
'Читать данные в http://client.alexa.com/common/css/scramble.css
alexacss = "http://client.alexa.com/common/css/scramble.css"
stralexacs = gethttppage (alexacss)
'response.write stralexacss
'response.end
alexarankqueryurl = "http://www.alexa.com/data/details/traffic_details/" & tempurl
stralexacontent = gethttppage (alexarankqueryurl)
RankContent = getBody (StralexAcontent, "Информационная служба .-->", "<!-Google_AD_SECTION_END (name = default)->", false, false)
'Получите класс пролета в нем
strspan = getarray (RankContent, "<span class =" "", "" "" ", false, false)
'response.write RankContent & "<br>"
'response.write strspan & "<br>"
'response.end
Если strspan <> "$ false $", то
aspan = split (strspan, "$ ray $")
Для i = 0 до Ubound (Aspan)
'response.write "." & Aspan (i)
«Определите, существует ли Aspan (i), то есть класс SPAN в Alexacss. Если он существует, данные в SPAN и SPAN должны быть удалены.
Если instr (stralexacss, "." & Aspan (i))> = 1 then
'response.write aspan (i) & "<br>"
'response.end
'означает, что собственность не является. Это нужно заменить.
RankContent = scripthtml (RankContent, "Span", 2, Aspan (i))
Еще
RankContent = scripthtml (RankContent, "Span", 1, Aspan (i))
Конец, если
Следующий
'Замените тег SPAN справа, который менее удален выше.
RankContent = replace (RankContent, "</span>", "")
Конец, если
Если rankcontent = "$ false $", тогда
RankContent = "Нет данных"
Конец, если
getalexarank = reply (rankcontent, ",", ",")
Конечная функция
url = request.querystring ("url")
%>
<form name = "Alexaform" method = get>
Введите URL: <input type = "" name = "url" value = "<%= url%>" size = 40> <input type = "отправить" value = "Query">
</form>
<%
Если url <> "" тогда
response.write "Ваш сайт занимает место в Alexa как:"
response.flush
rank = getalexarank (url)
response.write Rank
Конец, если
%>
Вышесказанное о том, как ASP Alexa может запросить программу ворота. Эта статья представляет относительно простую программу Alexa Thief. Друзья, которым нравится эта функция, могут изучить свои принципы. Я считаю, что вы можете написать эту программу в ближайшее время.