Dev (Back & Front)ARTIGO

Bloqueando endereços IP

Para bloquear IP, antes iremos verificar o endereço IP de um visitante, que é um processo muito simples, já que existem duas variáveis de servidor que nos oferecerão diretamente esta informação.

Existem dois modos de navegação do usuário. Ele pode ter vindo de um Proxy ou em um browser que não usa Proxy. No primeiro caso sabemos que ele está vindo de um Proxy, através do HTTP_X_FORWARDED_FOR do objeto Request da coleção servervariaveis.

' recupera  IP do visitante 
'O visitante pode acessar por proxy, então pego a IP que estiver utilizando 
ip = request.ServerVariables("HTTP_X_FORWARDED_FOR") 
'Se não vier do proxy, recupera ip do visitante 
if ip ="" then 
   ip = Request.ServerVariables("REMOTE_ADDR") 
end if 

Se quisermos evitar que um visitante navegue em nossas páginas com um IP, simplesmente temos que verificar com um IF que esse IP que queremos bloquear não é o do visitante.

if ip = "127.0.0.1" then 
   response.write ("bloqueio") 
end if 

A variável REMOTE_ADDR devolve o endereço IP do Host remoto que faz a requisição, já o HTTP_X_FORWARDED_FOR irá dizer se usuário está atrás de um servidor proxy. Você deve usar este primeiro e se os resultados forem valor nulo ou “desconhecido”, então use Request.ServerVariables [“REMOTE_ADDR”] para determinar o endereço IP.

Imagine uma lista de IPs que desejamos bloquear. Inserimos um simples array contendo os IPs que queremos bloquear e faremos um loop para percorrê-lo, de modo que possamos verificar se o IP do usuário está na lista de IP´s a serem bloqueados.

'lista de  ips bloqueados 
dim ip_bloqueados(5) 
ip_bloqueados(0) = "61.254.40.22" 
ip_bloqueados(1) = "62.454.40.25" 
ip_bloqueados(2) = "62.254.40.17" 
ip_bloqueados(3) = "65.105.61.13" 
ip_bloqueados(4) = "108.210.161.1" 

for each ip_atual in ips_bloqueadas 
   'se o ip do visitante ,estiver na lista 
   if ip = ip_atual then 
      response.redirect " no_access. asp" 
end if 
next

O código abaixo irá detectar endereço de IP do visitante e verificar se deve fazer o bloqueio de endereços IP. Se o endereço corresponde a qualquer um de nossa matriz, o nosso visitante será redirecionado para a página “no_access.asp”.

<% 
'declara variaveis
Dim sIP 
Dim sIParray(5) 
'endereços IP k serão bloqueados no array
sIParray(0) = "61.254.40.22" 
sIParray(1) = "62.454.40.25" 
sIParray(2) = "62.254.40.17" 
sIParray (3) = "65.105.61.13" 
sIParray (4) = "108.210.161.1"
'Recupera o endereço IP dos visitantes 
sIP = Request.ServerVariables("REMOTE_ADDR") 

' Loop através dos IPs banidos usando a função UBound
For i = 0 to UBound(sIParray) 
'Verifica se o endereço IP corresponde a qualquer dos IPs bloqueados
If sIP = sIParray(i) Then 
Response.Redirect "no_access.asp" 
End If 
Next 
%>

Até a próxima!

é Bacharel em Ciência da Computação, pós-graduação não concluída em Inteligência Artificial (IA) pela USFCAR, desenvolvedor de aplicativos WEB e autor de livros para cursos de informática e consultor de web. Com mais de 10 anos de experiência, autor de vários artigos e tutoriais na Web nas tecnologias ASP,SQL,JAVASCRIPT ,ASP.Net,XML , AJAX . e outros recursos. Atualmente trabalha como Coordenador de cursos de T.I.

Ver perfil