O princípio da anti-coleta é muito simples. Primeiro, coloque uma instrução dinâmica para adicionar o IP do visitante a uma tabela no banco de dados. Em seguida, adicione um JS na parte inferior da página. IP para outra tabela no banco de dados Uma tabela e uma interna.
Ontem vi um software anti-coleta na Internet, que dizia que a coleção só acessa a página atual, e não acessa as fotos, JS, etc. da página. Hoje de repente me ocorreu o IP do visitante. deve ser registrado por meio de programas dinâmicos e acesso JS, e então o IP poderá ser julgado durante o processo de coleta. Durante a coleta, apenas os IPs registrados por programas dinâmicos serão encontrados, e não haverá IPs registrados por. JS, evitando assim a coleta de programas de páginas web.
O princípio da anti-coleta é muito simples. Primeiro, coloque uma instrução dinâmica para adicionar o IP do visitante a uma tabela no banco de dados. Em seguida, adicione um JS na parte inferior da página. IP para outra tabela no banco de dados Uma tabela e uma interna. Ao acessar novamente, leia os dados IP das duas tabelas e, em seguida, determine a diferença de horário. Se for encontrado apenas na primeira tabela, mas não na segunda tabela, ou se a diferença de horário exceder 10 segundos, será considerado coletado. .
vantagem
1. Implantação simples, desde que seja uma linguagem dinâmica, pode ser facilmente implementada sem a necessidade de programas do lado do servidor.
2. Possui alta letalidade e pode bloquear quase todos os processos de coleta.
deficiência
1. A primeira desvantagem é sua alta letalidade. Se precisar usá-lo na prática, é necessário considerar algumas circunstâncias especiais para evitar matar acidentalmente o rastreador de pesquisa.
2. Aplicável apenas a páginas web dinâmicas, páginas estáticas não podem ser usadas.
O processo é um pouco confuso, mas o princípio em si não é muito complicado. O exemplo do programa está anexado abaixo, e quem conhece ASP deve ser capaz de entendê-lo rapidamente.
Exemplo de programa (ASP+ACCESS) (download do programa de teste):
1. Crie um banco de dados
Tabela 1: Ip1, campos Ip1_Adderss (texto), Ip1_Time (data/hora, padrão=Agora())
Tabela 2: Ip2, campos Ip2_Adderss (texto), Ip2_Time (data/hora, padrão=Agora())
2.Index.asp (apenas código dinâmico, consulte o programa de teste para todos os códigos)
Copie o código da seguinte forma:<%@LANGUAGE=VBSCRIPT CODEPAGE=936%>
<%
Dim Conn,Rs,Sqlstr,Ip,IpTime,IpTime2,NewUser
NewUser=0
Set Conn = Server.CreateObject(Adodb.Connection)
Set Rs= Servidor .Createobject(Adodb.RecordSet)
ConnStr=Provider=Microsoft.Jet.OLEDB.4.0;Fonte de dados= & Server.MapPath(Data.mdb)
Conn.Open ConnStr
Ip=Request.ServerVariables(REMOTE_ADDR)
Sqlstr=Selecionar * De [Ip1] Onde Ip1_Address='&Ip&' Ordenar por Ip1_Id Desc
Rs.Open Sqlstr,Conn,1,3
If Rs.Eof Then
NewUser=1
Application.Lock()
Rs.AddNew()
Rs(Ip1_Address)=Ip
Rs.Update()
Application.UnLock()
Else
IpTime=Rs(Ip1_Time)
Application.Lock()
Rs.AddNew()
Rs(Ip1_Address)=Ip
Rs.Update()
Application.UnLock()
End If
Rs.Close
If NewUser=0 Then
Sqlstr=Selecionar * De [Ip2] Onde Ip2_Address='&Ip&' Ordenar por Ip2_Id Desc
Rs.Open Sqlstr,Conn,1,3
If Rs.Eof Then
Rs.Close
Response.Write (Não coletar!)
Response.End()
Else
IpTime2=Rs(Ip2_Time)
If DateDiff(s,IpTime2,IpTime)>10 Então
Rs.Close
Response.Write (Não colete!)
Response.End()
End If
End If
Rs.Close
End If
%>
3.Js.asp
o código de cópia é o seguinte:
<%
Dim Conn,Rs,Sqlstr,Ip
Set Conn = Server . CreateObject(Adodb.Connection)
Definir Rs=Server.Createobject(Adodb.RecordSet)
ConnStr=Provider=Microsoft.Jet.OLEDB.4.0;Fonte de dados= & Server.MapPath(Data.mdb)
Conn.Open ConnStr
Ip=Request.ServerVariables(REMOTE_ADDR)
Sqlstr=Selecionar * De [Ip2]
Rs.Open Sqlstr,Conn,1,3
Application.Lock()
Rs.AddNew()
Rs (Ip2_Address)=Ip
Rs.Update()
Application.UnLock()
Rs.Close
%>
4. O código de cópia Get.asp
é o seguinte:
<%@LANGUAGE=VBSCRIPT CODEPAGE=936%>
<%
Response.Write(Server.HTMLEncode(GetHttpPage(http://localhost/Index.asp,GB2312)))
'= = ===========================
'Nome da função: GetHttpPage
'Função: Função obter código fonte da página
' Parâmetros: URL HttpUrl
'===============================
Função GetHttpPage(HttpUrl,Code )
If IsNull(HttpUrl)=True Or HttpUrl= Then
GetHttpPage=Um site está em manutenção!
Sair da função
Finalizar se
houver erro Retomar próximo
Dim Http
Set Http=server.createobject(MSX&ML2.XML&HTTP)
Http.open GET,HttpUrl,False
Http.Send()
Se Http.Readystate<>4 então
Definir Http=Nothing
GetHttpPage=B site Em manutenção!
Função de saída
End if
GetHttpPage=BytesToBSTR(Http.responseBody,Code)
Set Http=Nothing
If Err.number<>0 then
Err.Clear
GetHttpPage=CO site está em manutenção!
Função de saída
End If
End Function
'==============================
'Nome da função: BytesToBstr
'Função: Converter função de codificação
' parâmetros : Corpo da string, codificação Cset
'==============================
Função BytesToBstr(Body,Cset)
Dim Objstream
Set Objstream = Server .CreateObject(ado&d&b.st&re&am)
Objstream.Type = 1
Objstream.Mode =3
Objstream.Open
Objstream.Write body
Objstream.Position = 0
Objstream.Type = 2
Objstream.Charset = Cset
BytesToBstr = Objstream.ReadText
Objstream.Close
set Objstream = nada
End Function
%>
Este artigo foi originalmente criado por Fang Ka Online, indique a fonte ao reimprimir. Qualquer semelhança é mera coincidência!