Saulo,
Foi mais ou menos que eu fiz e estou testando, usei a ideia do Haroldo porém com alguns ajustes:
Relatório de desenvolvimento e testes:
1º O Cliente não tem uma máquina para ficar ligada como servidor e ficar autenticando a cada 15 minutos, neste caso colocamos nos computadores que ele tem como principal que ficam interno sempre dentro da empresa o programa No-IP para ficar autenticando.
Com isto eu vou saber qual o IP da rede interna dele.
2º No Cadastro de usuário eu tenho um campo que controla o previlégio do usuário se ele é Adminsitrador ou não para liberar o acesso de qualquer lugar.
3º Tenho um formulário dentro do sistema de configuração onde criei os campos :
a) Controla a autenticação do local de uso (tipo char) para S ou N
b) Informe o domínio para autenticação (Aqui eu coloco o domínio que o cliente tem no No-IP para autenticar)
4º controle do domńio no formulário Login
Com a função gethostbyname(variavel com o domínio) eu pego o domínio do formulário de configuração que cadastrei para que eu possa ter o IP do domńio que será autenticado para obter o IP da rede interna dele (WAN)
5ª controle do IP que esta acessando o sistema na WEB
Com a função $_SERVER[‘REMOTE_ADDR’] eu tenho o IP que esta acessando a minha aplicação na WEB, que esta se logando e ou tentando se logar.
6º Ficando assim:
$ip_dominio = gethostbyname($var_config_dominio);
$ip_local = $_SERVER[‘REMOTE_ADDR’];
Com isto eu tenho o IP da rede autenticado no No-IP que a máquina do cliente se autenticou e o IP da tentativa de se logar, faço uma comparação para saber se é a mesma rede ou não:
if (substr($ip_dominio,1,11) == substr($ip_local,1,11))
Assim fico sabendo que o IP da autenticação e o IP que esta tentando se logar faz parte da mesma rede para liberar e ou bloquear, caso for rede diferente eu vejo se o usuário que esta tentando se logar tem privilégio de ADM para liberar.
7º Caso o usuário não tiver o privilégio e ou a rede for diferente, eu gravo o log com o usuário, data e hora e o IP que esta tentando acessar para ter um controle das tentativas de acesso.
Com isto consegui resolver o problema, creio que podemos melhorar esta forma, mais no momento foi a mais simples e rápida que permite que só dentro da empresa seja acessado o sistema.
Obrigado a todos espero que estas informações possam ajudar também nossos amigos que possam estar com a mesma dificuldade e possa limitar os acessos.
Obrigado a todos.