Ajuda - Não consigo executar

12/08/2015

Boa noite! Estou com um probleminha bobo, testanto um exemplo que bloqueia um numero IP, mas não sei como testar, como inserir no navegador, tentei de algumas formas.

o código em questão!


$ipsbloqueados = array("127.0.0.1", "10.0.0.1");
	
	foreach ($ipsbloqueados as $ip) {
		
		if($ip == $_SERVER['REMOTE_ADDR']){
			
			header("Location: /cursophp/app/negado.php");
			exit();			
			
		}
		
	}

PHP

Karine Sobral

Respostas

12/08/2015

Jothaz

Imprima o que esta em:

$_SERVER['REMOTE_ADDR']


E faça o teste por este valor.
Responder Citar

12/08/2015

Karine Sobral

Utilizo o "echo" antes desse trecho de código?
Responder Citar

12/08/2015

Jothaz

Isso!

echo $_SERVER['REMOTE_ADDR']


Assim você vê o que esta retornando, então inclua este valor no array.
Responder Citar

12/08/2015

Karine Sobral

Erro de sintaxe! eu queria saber apenas a URL correta.
Responder Citar

12/08/2015

Karine Sobral

Tentando da seguinte forma:

http://127.0.0.1:8080/cursophp/app/negado.php
Responder Citar

13/08/2015

Jothaz

Olha a questão do IP não é tão trivial pois quando você roda local ou passa por um proxy pode mascarar o ip original.

Tente assim, ver o que esta na variavel.

<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo $ip;
?>


Já tem um bom tempo que não uso o PHP, mas usa o script abaixo para pegar o IP real, não sei se ainda é a melhor maneira, mas não custa tentar:

<?php
$http_client_ip       = $_SERVER['HTTP_CLIENT_IP'];
$http_x_forwarded_for = $_SERVER['HTTP_X_FORWARDED_FOR'];
$remote_addr          = $_SERVER['REMOTE_ADDR'];
 
/* VERIFICO SE O IP REALMENTE EXISTE NA INTERNET */
if(!empty($http_client_ip)){
    $ip = $http_client_ip;
    /* VERIFICO SE O ACESSO PARTIU DE UM SERVIDOR PROXY */
} elseif(!empty($http_x_forwarded_for)){
    $ip = $http_x_forwarded_for;
} else {
    /* CASO EU NÃO ENCONTRE NAS DUAS OUTRAS MANEIRAS, RECUPERO DA FORMA TRADICIONAL */
    $ip = $remote_addr;
}
 
echo $ip;
 
?>
Responder Citar

13/08/2015

Karine Sobral

Funcionou apenas com o código!

                $ip = $_SERVER['REMOTE_ADDR'];
		echo $ip;



Não incluí o outro por ser diferente do que estava sendo visto! Mas vou guarda-lo para estudo posteriormente.
Responder Citar

13/08/2015

Jothaz

Funcionou apenas com o código!

                $ip = $_SERVER['REMOTE_ADDR'];
		echo $ip;

Não incluí o outro por ser diferente do que estava sendo visto! Mas vou guarda-lo para estudo posteriormente.


No final conseguiu retornar o ip e fazer o teste que você queria?
Responder Citar

13/08/2015

Karine Sobral

Sim, obrigada.
Responder Citar