Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Charlles Miller

[Resolvido] if que verifica se a pessoa está na rede local ou não

Recommended Posts

olha só, fiz um if que faz o seguinte:

 

if($_SERVER['REMOTE_ADDR'] == "IP DA REDE"){
echo "Você está na rede local!<br />";

aqui o conteudo

}else{
echo "Voceê não está na rede local<br />";

aqui o conteudo

}

 

e o problema é o seguinte, o ip não é fixo ai tenho que mudar todo dia, ai pensei vou usar o 'no ip' mas não funcionou, eu estou fazenndo assim:

if($_SERVER['REMOTE_ADDR'] == "radio.servermp3.com"){

<- (é só um exemplo)

porque não funciona?

o que eu faço para resolver isso ?

 

---------------------

alguem por favor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nunca precisei fazer nada do tipo.

 

 

minhas perguntas estão acima do nivel de conhecimento de vocês por acaso ? :)

uma coisa facil dessa, aff

vou ter que procurar outro forum...

Está acima do teu nível de conhecimento tb :lol:

 

http://forum.imasters.com.br/topic/437929-forum-de-tecnologia-nao-e-helpdesk/

 

 

 

verifique se a chave:

var_dump( $_SERVER['HTTP_X_FORWARDED_FOR'] );

possui algum valor.

Em todo caso, numa solução mais a força bruta. Você não consegue fazer uma máquina gravar todo dia qual é o IP da rede ?

tipo, geraria em uma tabela, arquivo .txt o IP da rede. E as demais se comparariam a essa.

Compartilhar este post


Link para o post
Compartilhar em outros sites
if($_SERVER['REMOTE_ADDR'] == $_SERVER['SERVER_ADDR']){

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hi.

 

Hmm, vamos começar ou ver se eu entendi.

Ao capturar o endereço de IP por $_SERVER['REMOTE_ADDR'], a parada não vai adivinhar os DNS que o cliente possui, e por isso a sua técnica do No-IP não funciona. No máximo você pode capturar o DNS reverso através da função gethostbyaddr() e realizar a comparação. Ou um exec em nslookup se o ambiente for *nix-like, etc.

 

Se é uma rede local, o IP externo seria o mesmo, certo? Aí sim você pode comparar com o conteúdo da key REMOTE_ADDR, até mesmo com SERVER_ADDR.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se a chave:

var_dump( $_SERVER['HTTP_X_FORWARDED_FOR'] );

possui algum valor.

 

deu "NULL"

 

if($_SERVER['REMOTE_ADDR'] == $_SERVER['SERVER_ADDR']){

;)

 

 

mas cara eu não quero pegar o IP do Host, é o da minha rede, para que quando entrar uma pessoa da minha rede execute uma função e quem for de fora execute outra

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que tal essa sugestão de força bruta?

 

Em todo caso, numa solução mais a força bruta. Você não consegue fazer uma máquina gravar todo dia qual é o IP da rede ?

tipo, geraria em uma tabela, arquivo .txt o IP da rede. E as demais se comparariam a essa.

 

é certo que funciona. Foi o meio mais lógico de resolver que bolei aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei se eu entendi, mas tipo assim fazer uma pagina php que pegue o IP na hora que eu entre nela, e salvar em txt, isso ? mas tem como depois comparar se o ip é o mesmo que esta no arquivo txt ?

eu sei fazer isso com Banco de dados, mas com arquivo.txt eu nunca fiz.

(esta acima do meu nivel de conhecimento lol KKKKKK)

Compartilhar este post


Link para o post
Compartilhar em outros sites

fazer uma pagina php que pegue o IP na hora que eu entre nela, e salvar em txt, isso ?

mais ou menos.

a única máquina que vai acessar esse script php, será uma máquina que você tenha certeza de que está na rede.

 

Essa única máquina, vai gravar o .txt. O que estiver lá no txt, deverá ser comparado pelas outras máquinas.

Simples assim.

 

 

 

mas tem como depois comparar se o ip é o mesmo que esta no arquivo txt ?

eu sei fazer isso com Banco de dados, mas com arquivo.txt eu nunca fiz.

tem uê, é a mesma coisa se fosse fazer com banco. Igualzinho.

 

 

 

o servidor da aplicação está na rede local ? ou em um host externo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

(quando quote não é necessario? :) )

qndo quota toda a resposta do post anterior, dificultando a leitura, e poluindo o topico.

 

quote é necessário, qndo destaca um ponto, frase, ou trecho de algum post anterior. E não o outro completamente.

 

 

Okay. Então, você consegue fazer uma maquina ai tua, fazer essa rotina que eu disse?

ir até o servidor e gravar um .txt lá ?

 

 

leu as respostas dos demais colegas? ficou com alguma dúvida ?

agora tente fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Okay. Então, você consegue fazer uma maquina ai tua, fazer essa rotina que eu disse?

ir até o servidor e gravar um .txt lá ?

 

sim consigo, vou fazer isso.

obrigado por me ajudarem, e desculpa ai qualquer coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, deixe-me ver se entendi, você quer fazer o que todo Modem faz?

 

Quando você digita o endereço do Modem em uma rede local, você acessa seu painel.

Quando você digita o endereço do modem em uma rede externa, ele verifica o protocolo e a porta que você está usando e procura por Hosts na rede interna que pode estar atendendo a esse tipo de serviço.

 

Se é isso que você quer, tudo que você precisa manter em mente é que o Endereço IPv4 possui divisões de classes e todos os endereços privados são tabelados, além do endereço de loopback.

 

A única necessidade maior que você terá é saber qual classe sua rede local está e então usar um IF para ela:

<?php
$rede = explode(".", $_SERVER['REMOTE_ADDR']);
$classeA = $rede[0];
$classeB = $rede[0].".".$rede[1];
$classeC = $rede[0].".".$rede[1].".".$rede[2];
?>

Se estiver na classe A, teste se $classeA é igual a 10.

Se estiver na classe B, teste se a $classeB está entre 172.16 à 172.31

Se estiver na classe C, teste se a $classeC está entre 192.168.0 à 192.168.255

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste como resolveu, pois pode ajudar mais pessoas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu criei uma pagina php que grava o ip em um arquivo de texto, depois outra pagina lê o ip que esta no TXT e compara com o ip da pessoa que acessa a pagina.

 

a pagina que pega o ip e salva e essa:

<?php
$ip = $_SERVER[REMOTE_ADDR];
$fp = fopen("ip.txt","a");
fwrite($fp,"$ip"); 
fclose($fp);
?>

e a que lê o txt é essa:

<?

$linha = file("../ip/ip.txt");

//echo "$linha[0]";

?>

dopois para comparar e só usar if:

if($_SERVER['REMOTE_ADDR'] == $linha[0]){ echo "você esta na rede local"; }else{ echo "você não esta na rede local"; }

beleza.

estou usando isso na minha radio: www.radioluz.co.cc/luz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho que isso daí é um clássico "You are doing it wrong".

Se eu entrar na página que pega o meu IP e ela salvar meu ip 200.200.200.200, depois vai comparar se 200.200.200.200 == 200.200.200.200, o que com certeza é.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.