[1] Comentário enviado por
elgio em 07/09/2010 - 20:32h:
Amigo. Este script não faz isto que dizes. O que estás "tentando fazer" (mas não fazes) é ver se o primeiro octeto do teu servidor é igual ao primeiro octeto do teu cliente e se o segundo octeto também o é. Ele considerá como sendo local se teu servidor for 10.10.7.6 e o cliente 10.10.200.1.
Para fazer isto o if teria que ser um && (AND) e não um || (OR). Como está ele irá dizer que 10.20.30.4 é da mesma rede que 200.20.3.4!!!!
Ainda teria tantas outras coisas a considerar, pois compara o primeiro e o segundo octeto não é garantia de ser da mesma rede! Sem falar que não testas o HTTP_X_FORWARDED_FOR que tem o IP privado em caso de proxy.
O script está errado (devia ser um &&) e mesmo se estiver certo, não faz o que se propõe. Para ver se é da rede interna teria que se ter a máscara de rede do servidor.
[2] Comentário enviado por
markintux em 07/09/2010 - 22:53h:
elgio...
realmente a parte do OR e AND tem um erro sim, tanto que corrigi no sistema que eu o utilizo e esqueci de arrumar aqui. Me desculpe... quanto a parte do octeto e tudo mais, eu sei que não é garantia de ser da mesma rede, a mesma coisa me refiro ao HTTP_X_FORWARDED_FOR. Mas foi uma solução que eu encontrei para resolver meus problemas e por enquanto está "quebrando o galho". Caso tenha o jeito correto de se fazer acho que seria muito util então posta-lo aqui para que toda a comunidade possa experimenta-lo.
Obrigado pelo comentário.