Asp restringe o acesso IP e impede que um determinado segmento IP acesse o código deste site.
Freqüentemente, alguns sites locais B2B ou B2C têm muito spam postado em lotes em todos os lugares. Gostaria de compartilhar minha solução com todos.
O código é o seguinte:
<%
'' Obtenha o endereço do visitante
ip=Request.ServerVariables(REMOTE_ADDR)
''O intervalo de endereços IP permitido é 10.0.0.0~10.68.63.255
permitirip1=10.0.0.0
permitirip2=10.68.10.71
resposta.writecheckip(ip,allowip1,allowip2)
functioncheckip(ip,allowip1,allowip2)
verificação escura (4)
checkip=falso
ipstr=dividir(ip,.)
permitir1=dividir(permitirip1,.)
permitir2=dividir(allowip2,.)
ifcint(allow1(0))>cint(allow2(0))then'' determina se o segmento de endereço IP é legal
resposta.writeAcesso proibido
função de saída
final se
fori=0toubound(ipstr)
ifcint(allow1(i))<cint(allow2(i))então
ifcint(allow1(i))=cint(ipstr(i))então
verificar(i)=verdadeiro
checkip = verdadeiro
sair para
outro
ifcint(ipstr(i))<cint(allow2(i))então
verificar(i)=verdadeiro
checkip = verdadeiro
sair para
outro
ifcint(ipstr(i))>cint(allow2(i))então
verificar(i)=falso
checkip=falso
sair para
outro
verificar(i)=verdadeiro
checkip = verdadeiro
final se
final se
final se
outro
ifcint(allow1(i))>cint(ipstr(i))orcint(allow1(i))<cint(ipstr(i))então
verificar(i)=falso
checkip=falso
ifi<>ubound(ipstr)então
sair para
final se
outro
verificar(i)=verdadeiro
final se
final se
próximo
if(check(0)=trueandcheck(1)=trueandcheck(2)=trueandcheck(3)=false)and(cint(allow2(2))>cint(ipstr(2)))então
checkip = verdadeiro
final se
função final
%>
Adicione o seguinte código à sua página ASP para testar o efeito:
Copie o código do código da seguinte forma:
<%
'Uma coleção de endereços IP bloqueados (segmentos), o asterisco é um caractere curinga, geralmente salvo no arquivo de configuração.
Const BadIPGroup = 192.168.1.*|202.68.*.*|*.12.55.34|185.*.96.24|127.*.0.1|192.168.0.1
Se IsForbidIP(BadIPGroup) = Verdadeiro então
Response.Write (GetIP e endereço IP têm acesso proibido)
Resposta.End()
Terminar se
'Parâmetro vBadIP: segmento IP a ser bloqueado, endereço IP definido, use o símbolo para separar vários endereços IP (segmentos)
'Return Bool: True o IP do usuário está na faixa bloqueada, False caso contrário
Função IsForbidIP(vBadIP)
Dim contador, arrIPPart, arrBadIP, arrBadIPPart, i, j
arrBadIP = Dividir(vBadIP, |)
arrIPPart = Dividir(GetIP(), .)
Para i = 0 para UBound (arrBadIP)
contador=0
arrBadIPPart = Dividir(arrBadIP(i), .)
Para j = 0 para UBound (arrIPPart)
If(arrBadIPPart(j)) = * ou Cstr(arrIPPart(j)) = Cstr(arrBadIPPart(j)) Então
contador = contador + 1
Terminar se
Próximo
Se contador = 4 Então
IsForbidIP = Verdadeiro
Função de saída
Terminar se
Próximo
IsForbidIP = Falso
Função final
''Retornar endereço IP do cliente
Função GetIP()
Escurecer IP
IP = Solicitação.ServerVariables(HTTP_X_FORWARDED_FOR)
Se IP = Então IP = Request.ServerVariables(REMOTE_ADDR)
ObterIP=IP
Função final
%>
Desta forma, você pode restringir o intervalo de IP para acesso ao site. Você pode configurá-lo de acordo com o intervalo de IP da região.
Eu uso esse método para evitar que usuários estrangeiros usem software nocivo para postar informações maliciosamente em meu site!